h$&#D      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g None #$>?w log-base Represents message to be logged.log-baseComponent of an application.log-baseApplication log domain.log-baseTime of the logged event.log-base Log level. log-baseMessage to be logged. log-base,Additional data associated with the message. log-baseAvailable log levels. Note that ordering in this definintion determines what the maximum log level is. See  .log-baseThis function is partial.log-baseThe default log level. Returns  .log-base Render a  to Text.log-base+The time that message was added to the log.log-baseThe actual message.   None #$>?3hijklmnopqrstuvwxyz{|}~ ! ! None #$>? "log-baseAn object used for communication with a logger thread that outputs s using e.g. PostgreSQL, Elasticsearch or stdout (depending on the back-end chosen).log-base Output a .log-baseWait for the logger to output all messages in its input queue (in the case logging is done asynchronously).log-baseKill the logger thread. Subsequent attempts to write messages to the logger will raise an exception.#log-baseExecute logger to serialize a .$log-baseWait until all /s stored in the internal queue are serialized.%log-base0Shutdown the logger thread associated with this "9 object. Subsequent attempts to write messages via this " will result in an exception.log-base-like execution of an : action, verifying all messages are properly logged. See  mkBulkLogger.log-baseComposition of " objects. "#$%None #$>? &log-baseCreate an in-memory logger for the duration of the given action, returning both the result of the action and the logger's output as a Text value afterwards.&&None #$>? %(log-baseCreate a new, empty list.)log-base%Retrieve messages stored in the list.*log-basePut a message into the list.+log-baseClear the list.,log-base3Creates a logger that stores messages in the given '.'()*+,'()*+,None #$>?% .log-baseThe state that every LogT carries around.0log-baseThe " to use.1log-baseCurrent application component.2log-baseCurrent application domain.3log-base:Additional data to be merged with the log message's data.4log-base+The maximum log level allowed to be logged.5log-baseStart a logger thread that consumes one queued message at a time.Note: a bounded queue of size 1000000 is used internally to avoid unrestricted memory consumption.6 log-baseLike 7#, but with configurable queue size.7log-baseStart an asynchronous logger thread that consumes all queued messages once per second.Note: a bounded queue of size 1000000 is used internally to avoid unrestricted memory consumption.To make sure that the messages get written out in the presence of exceptions, use high-level wrappers like ,   or $ instead of this function directly.Note: some messages can be lost when the main thread shuts down without making sure that all logger threads have written out all messages, because in that case child threads are not given a chance to clean up by the RTS. This is apparently a feature: https://mail.haskell.org/pipermail/haskell-cafe/2014-February/112754.htmlTo work around this issue, make sure that the main thread doesn't exit until all its children have terminated. The async package makes this easy.Problematic example: import Control.Concurrent.Async main :: IO () main = do logger <-   a <-  (  $ \logger ->  ! "main" logger defaultLogLevel $  "foo") -- Main thread exits without waiting for the child -- to finish and without giving the child a chance -- to do proper cleanup. Fixed example: import Control.Concurrent.Async main :: IO () main = do logger <-   a <-  (  $ \logger ->  ! "main" logger defaultLogLevel $  "foo")  a -- Main thread waits for the child to finish, giving -- it a chance to shut down properly. This works even -- in the presence of exceptions in the child thread. 8log-baseLike 74, but with configurable queue size and thread delay.8log-base queue capacity (default 1000000)log-base,thread delay (microseconds, default 1000000)log-base logger namelog-basewritelog-baseflush"#$%./401235678./40123"5678#$%None #$>? 9log-baseRepresents the family of monads with logging capabilities. Each 9 carries with it some associated state (the logging environment) that can be modified locally with ; and <.:log-baseWrite a message to the log.;log-baseExtend the additional data associated with each log message locally.<log-base.Extend the current application domain locally.=log-base'Override the current maximum log level.>log-base Get current . object. Useful for construction of logging functions that work in a different monad, see  getLoggerIO as an example.?log-baseLog a message and its associated data using current time as the event time and the   log level.@log-baseLog a message and its associated data using current time as the event time and the   log level.Alog-baseLog a message and its associated data using current time as the event time and the  log level.Blog-baseLike ?-, but without any additional associated data.Clog-baseLike @-, but without any additional associated data.Dlog-baseLike A-, but without any additional associated data.Elog-baseGeneric, overlapping instance.:log-base Log level.log-base Log message.log-base,Additional data associated with the message. 9:;<=>?@ABCD 9:;<=>?@ABCDNone #$>?Flog-baseCreate an asynchronouis logger thread that prints messages to standard output once per second for the duration of the given action. Flushes  on each bulk write.Glog-baseCreate a bulk logger that prints messages in the JSON format to standard output once per second for the duration of the given action. Flushes  on each bulk write.FGFG None #$>?\Hlog-baseCreate a simple, synchronous logger that prints messages to standard output and flushes  on each call to ' for the duration of the given action.Ilog-baseCreate a logger that prints messages to standard output for the duration of the given action.Jlog-baseCreate a logger that prints messages in the JSON format to standard output for the duration of the given action.HIJHIJ None #$>?"Klog-baseMonad transformer that adds logging capabilities to the underlying monad.Olog-baseRun a K computation.3Note that in the case of asynchronous/bulk loggers O doesn't guarantee that all messages are actually written to the log once it finishes. Use  withPGLogger or withElasticSearchLogger for that.Plog-base#Transform the computation inside a K.Qlog-baseBase implementation of : for use with a specific .!. Useful for reimplementation of 9 instance.Rlog-base9Return an IO action that logs messages using the current 99 context. Useful for interfacing with libraries such as aws or amazonka0 that accept logging callbacks operating in IO.Wlog-base  = POlog-base"Application component name to use.log-baseThe logging back-end to use.log-baseThe maximum log level allowed to be logged. Only messages less or equal than this level with be logged.log-baseThe K computation to run."./40123KLMNOPQR"./40123NKLMOPQRNone #$>?#7   "#$%./3214056789>=<:;?@ABCDKLMNOPQR !"#$%&'()*+,-./0123456789:; < = > ?@ABCDEFGHHIJKL MNOPQRSTUVWXYZ[\] ^ _ ` a a b c  d e f g h i j k l m n o p q r s t u v w x y z {|}|~|||||||||||||||||||||||||||||||||||||||||||||||      <(log-base-0.11.1.0-JdptBdm3cWx1MKFQDUn3ae Log.ClassLogLog.DataLog.Internal.Aeson.Compat Log.LoggerLog.Backend.TextLog.Backend.LogListLog.Backend.StandardOutput.BulkLog.Backend.StandardOutput Log.Monad leMaxLogLevelLog.Internal.LoggerLog.Backend.ElasticSearchwithElasticSearchLoggerwithBulkStdOutLoggerelasticSearchLoggerControl.Concurrent.AsyncasyncrunLogT logTrace_wait time-1.9.3 Data.Time.Clock.Internal.UTCTimeUTCTime$aeson-2.0.3.0-6VzhD9PWYGW7PNFtV9b626Data.Aeson.Types.ToJSON.=Data.Aeson.Types.Internalobject LogMessage lmComponentlmDomainlmTimelmLevel lmMessagelmDataLogLevel LogAttentionLogInfoLogTrace readLogLevelreadLogLevelEither showLogLeveldefaultLogLevelshowLogMessage$fNFDataLogLevel$fFromJSONLogLevel$fToJSONLogLevel$fNFDataLogMessage$fFromJSONLogMessage$fToJSONLogMessage$fEqLogMessage$fShowLogMessage$fBoundedLogLevel $fEqLogLevel $fOrdLogLevel$fShowLogLevelfromTextdoNameLogger execLogger waitForLoggershutdownLoggerwithSimpleTextLoggerLogList newLogList getLogList putLogList clearLogListwithLogListLogger $fEqLogList LoggerEnvleLogger leComponentleDomainleDatamkLogger mkLogger' mkBulkLogger mkBulkLogger'MonadLog logMessage localData localDomainlocalMaxLogLevel getLoggerEnv logAttentionlogInfologTrace logAttention_logInfo_ $fMonadLogtwithBulkJsonStdOutLoggerwithSimpleStdOutLoggerwithStdOutLoggerwithJsonStdOutLoggerLogTunLogT InnerLogTmapLogT logMessageIO getLoggerIO$fMonadLogLogT$fMonadUnliftIOLogT$fMonadBaseControlbLogT$fMonadTransControlLogT$fMFunctorTYPELogT$fMonadReaderrLogT$fAlternativeLogT$fApplicativeLogT $fFunctorLogT $fMonadLogT$fMonadBasebLogT$fMonadCatchLogT $fMonadIOLogT$fMonadMaskLogT$fMonadPlusLogT$fMonadThrowLogT$fMonadTransLogT$fMonadFailLogT$fMonadErroreLogT$fMonadWriterwLogT$fMonadStatesLogTData.Aeson.KeyMap fromMapText toMapTextfromHashMapText toHashMapText alignWithKey alignWithmapMaybeWithKeymapMaybe filterWithKeyfilter mapKeyVal coercionToMapcoercionToHashMapfromMaptoMap fromHashMap toHashMapkeysintersectionWithKeyintersectionWith intersection unionWithKey unionWithunion difference toAscListelemstoListfromList fromListWithtraverseWithKeytraverse foldrWithKeyfoldl'foldlfoldr'foldrfoldMapWithKeymapinsertlookupalterFdeletemember singletonsizenullemptyKeyMaploggerWriteMessageloggerWaitForWriteloggerShutdown withLoggerbaseControl.Exception.Basebracketghc-prim GHC.TypesIO$fMonoidLoggerGHC.IO.Handle.FDstdout#mmorph-1.1.5-7jVXMTfUGz5EvY5mKxMGqvControl.Monad.Morphhoist