úÎ!§Õ›+Ò      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh i j k l m n o p q r s t u v w x y z { | } ~  € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ‘ ’ “ ”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑSafeÅlog4hs" also known as severity, a higher  means a bigger Ò.#There are 5 common severity levels: DEBUGLevel 10INFOLevel 20WARNLevel 30ERRORLevel 40FATALLevel 50:set -XOverloadedStrings"DEBUG" :: LevelDEBUG"DEBUG" == (Level 10)TrueSafes log4hs  is just a name.  Safe±  Safe"7d)xlog4hsA " represents an event being logged.rs are created every time something is logged. They contain all the information related to the event being logged.ŠIt includes the main message as well as information such as when the record was created, the source line where the logging call was made.! can be formatted into string by  from vformat package, see Ó for more information.ACurrently, the useful attributes in a LogRecord are described by: ' logger name of the logger, see  3 level logging level for the message, see ÿ¿ message the main message passed to logv debug info .. pathname full pathname of the source file where the logging call was issued (if available) filename filename portion of pathname pkgname package name where the logging call was issued (if available) modulename module name (e.g. Main, Logging) lineno source line number where the logging call was issued (if available) asctime locale time when the  was created (Ô is from Manager#) utctime utc time when the / was created created timestamp when the T was created msecs millisecond portion of the creation time thread Õ4 of the thread in which the logging call was issued Format examples: › "{message}" "{logger} {level}: {message}" "{logger:<20.20s} {level:<8s}: {message}" "{asctime:%Y-%m-%dT%H:%M:%S%6Q%z} - {level} - {logger}] {message}" %log4hsUse {utctime:%s%Q} instead. See Text.Format.Time and Data.Time.Format.&log4hsUse  {utctime:%3q} instead. See Text.Format.Time and Data.Time.Format. !"#$%&' !"#$%&'Safe++log4hs/A class represents a common trait of filtering s+,Safe"#5(-log4hsList of Filter.log4hs.-s are used to perform arbitrary filtering of s.Sinks and Handlers can optionally use . to filter is as desired. It allows events which are below a certain point in the sink hierarchy. For example, a . initialized with A.B& will allow events logged by loggers A.B, A.B.C, A.B.C.D, A.B.D etc. but not A.BB, B.A.B etc.<If initialized with the empty string, all events are passed..If initialized with a predicate function, the   will be considered as the Filter',s name, the function will be used to filter s.1log4hsIf two . s have same   (name), they are equal.-././-None &'=>?@Ak@ë5log4hs5A type class that abstracts the characteristics of a 56log4hsInitialize the 5 instance7log4hs6Emit log event, prepare log data, and send to bancked.e.g. 1) Format l into data in specific format (json, html, etc.), 2) write the data to a file or send the data to a server.8log4hsTerminate the 5 instance9log4hsHandle  and decide whether to call 7.(The default implementation is to filter  by level and Handler\'s filterer, if rejected, do nothing and return False, otherwise call emit and return True.2Note: You can override the default implementation.<log4hs Generalised 5 instance, it wraps all other 5 instances into one type.The <0 type is the root of the handler type hierarchy. 5896:7;<=NoneAF +,5896:7;<= +,<=5896:7;None"#7NÎ >log4hs)A datatype indicates when to rotate file.Note: This handler use 1970-01-01 00:00:00< of the given timezone as the zero time, all caculations of >- are based on this zero time. Let's consider Hour 5 for example, if now is 2020-01-01 03:10:00, since there are 87658 5 hours; between now and zero time, the next rotating time will be 2020-01-01 07:00:00.?log4hsEvery n minute(s)@log4hsEvery n hour(s)Alog4hsAt zero clock of a weekdayBlog4hsEvery n day(s)Clog4hs3A datatype indicates a day of Monday-starting week.Klog4hsTA handler type which logs to a file and rotates the log at cerntain timed intervals.Rlog4hs(In most cases, it is the same value as Manager'Fs timezone, but it won't cause problems if you set a different value.Wlog4hs6Monday-starting week means Monday is 1 and Sunday is 7>BA?@CDEFGHIJKLVQPMNORSTUKLVQPMNORSTUCDEFGHIJ>BA?@None"#7dQÆ_log4hsSA handler type which writes logging records, appropriately formatted, to a stream.dlog4hsMust be writable Ö_`dabc_`dabc None"#7dW$hlog4hsxA handler type which writes logging records, appropriately formatted, to a file, it will rotate when file is too large. Since 0.3.0olog4hs:Actual file size may be slightly larger than this value.qlog4hs0Don't open file manually, initialized as empty × and use 6 or "Logger.Manager.initialize" hiqnmjklpo hiqnmjklpo None"#7dZÜulog4hsQA handler type which writes logging records, appropriately formatted, to a file.|log4hs*Don't open file manually, initialized as Ø undefined and use 6 or "Logger.Manager.initialize"uv|{zwxyuv|{zwxy None"#dið€log4hs€% represents a single logging channel.ÿiA "logging channel" indicates an area of an application. Exactly how an "area" is defined is up to the application developer. Since an application can have any number of areas, logging channels are identified by a unique string. Application areas can be nested (e.g. an area of "input processing" might include sub-areas "read CSV files", "read XLS files" and "read Gnumeric files"). To cater for this natural nesting, channel names are organized into a namespace hierarchy where levels are separated by periods, much like the Haskell module namespace. So in the instance given above, channel names might be Input for the upper level, and  Input.Csv,  Input.Xls and  Input.GnuJ for the sub-levels. There is no arbitrary limit to the depth of nesting.(Note: The namespaces are case sensitive.‡log4hsDIt will pop up until root or the ancestor's propagation is disabled€‚ƒ…„†‡€‚ƒ…„†‡ None"#ni‰log4hsLogging ‰7 which holds the hierarchy of sinks and other settings.Since v0.7.0, the Ô0 of the logging environment can be configurable.log4hslog4hs Initialize a ‰, open all its handlers.‘log4hs Terminate a ‰, close all its handlers. ‰Š‹ŽŒ‘ ‰Š‹ŽŒ‘None"#$Xdko'’“ÙNoney‹”log4hs(Log "message" with the severity "level".The missing type signature: Ú m =>   ->  -> Û -> ’ m ()•log4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> ’ m ()–log4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> ’ m ()—log4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> ’ m ()˜log4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> ’ m ()™log4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> ’ m ()”•–—˜™”•–—˜™ Noneyñ’“”•–—˜™’“None"#‚yšlog4hs#Run the global logging environment.HYou should always run you application in the global logging environment. k main :: IO () main = run manager app app :: IO () app = do $(info) "App" "..." ... <Never run multiple global logging environments concurrently. æ -- bad useage main :: IO () main = do forkIO $ run manager1 app1 forkIO $ run manager2 app2 ... -- correct useage main :: IO () main = run manager $ do forkIO app1 forkIO app2 ... ÜšNoneŒw›log4hs(Log "message" with the severity "level".The missing type signature: Ú m =>   ->  -> Û -> m ()œlog4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> m ()log4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> m ()žlog4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> m ()Ÿlog4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> m () log4hs'Log "message" with a specific severity.The missing type signature: Ú m =>   -> Û -> m ()›œžŸ ›œžŸ NoneŒÝš›œžŸ šNone"#7d‘÷©log4hs·log4hs½log4hsSee Ý, default is utf8.¾log4hsDefault is 100 MB.¿log4hsDefault is 10.Àlog4hsIf not set, same as Manager' s timezone.Álog4hs%Indicates when to rotate file, e.g. D3 means every 3 days, W4 means at 0 clock of Thursday, try showing  RotateTime."¡¢£¤¥§©ª¦«¨¬­®°¯²±³µ¶´·»½¼¸¹ºÀÁ¿¾Â"³µ¶´·»½¼¸¹ºÀÁ¿¾¬­®°¯²±¤¥§©ª¦«¨¡¢£ÂNone”wÎlog4hs decode a ‰ from strict ÞÏlog4hs decode a ‰ from a fileÎÏÎÏNone•÷Ðlog4hs decode a ‰ from strict ÞÑlog4hs decode a ‰ from a fileÐÑÐÑNone–=›œžŸ None–‹I  !"#$%&'+,-./5896:7;<=_`dabchiqnmjklpouv|{zwxy€‚ƒ…„†‡‰Š‹ŽŒ‘(c) 2019 Version CloudBSD3 Jorah Gao <log4hs@version.cloud> experimentalportableNone™"P  !"#$%&'+,-./5896:7;<=_`dabchiqnmjklpouv|{zwxy€‚ƒ…„†‡‰Š‹ŽŒ‘š›œžŸ Safeš˜ Safe›ßàáâãäåæç !"#$%&'()*+,-./01234567789:;<=>?@ABCDEFGHIJKKLMNOPQRSTUVWXXYZ[\]^_`abcdeffghijklmnopqrstuvwxyyz{|}~€   ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ   Ž ‘ ’ “ ” • – — — ˜ ™ š › œ ž Ÿ Ÿ   ¡ l ¢ £ ¤ ¥¦§¨©ª«¬­®¨©ª«¬­¯¯°±±²³´µ¶·——™š›œQyfz{|}¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÊËÌÍÎÏÐÑÒÓÔÕÖ×ÕØÙÕÚÛÕÜÝÞÕßàÕáâÞÕãäåæçèéêëìíîïð%log4hs-0.7.1.0-9Xz9SPqJQeEABay2HookjC Logging.LevelLogging.LoggerLogging.PreludeLogging.Record Logging.ClassLogging.Filter'Logging.Handler.TimeRotatingFileHandlerLogging.Handler.StreamHandler#Logging.Handler.RotatingFileHandlerLogging.Handler.FileHandler Logging.SinkLogging.Manager Logging.MonadLogging.Monad.THLogging.GlobalLogging.Global.THLogging.Config.TypeLogging.Config.YamlLogging.Config.JsonTextFormatLogging.Class.FilterableLogging.Class.HandlerLogging.Monad.InternalLogging.Global.Internal Logging.TH Logging.TypesLogging Logging.Utils Paths_log4hsLevel$fFormatArgLevel$fDefaultLevel $fEnumLevel$fIsStringLevel $fReadLevel $fShowLevel $fEqLevel $fOrdLevelLogger addZonedTime diffZonedTimezonedTimeToPOSIXSeconds timestampseconds milliseconds microseconds openLogFile tryRenameFilelastModifyTimemodifyBaseNameappendBaseName$fFormatArgThreadId$fEqTextEncoding LogRecord$sel:logger:LogRecord$sel:level:LogRecord$sel:message:LogRecord$sel:pathname:LogRecord$sel:filename:LogRecord$sel:pkgname:LogRecord$sel:modulename:LogRecord$sel:lineno:LogRecord$sel:asctime:LogRecord$sel:utctime:LogRecord$sel:created:LogRecord$sel:msecs:LogRecord$sel:thread:LogRecord$fFormatArgLogRecord$fGenericLogRecord$fShowLogRecord FilterablefilterFiltererFilter$fFilterableFilter $fEqFilter $fShowFilter $fReadFilter$fIsStringFilterHandleropenemitclosehandle fromHandler toHandler SomeHandler RotateTimeMinuteHourWeekDayDay DayOfWeekMondayTuesday WednesdayThursdayFridaySaturdaySundayTimeRotatingFileHandlerlevelfilterer formatterfileencodingtimezone rotateTime backupCountrotateAtstream$fEnumDayOfWeek$fShowRotateTime$fReadRotateTime $fHandlerTimeRotatingFileHandler $fEqDayOfWeek$fEqRotateTime $fGenericTimeRotatingFileHandler$fEqTimeRotatingFileHandler StreamHandler$sel:level:StreamHandler$sel:filterer:StreamHandler$sel:formatter:StreamHandler$sel:stream:StreamHandler$fHandlerStreamHandler$fGenericStreamHandler$fEqStreamHandlerRotatingFileHandler$sel:level:RotatingFileHandler!$sel:filterer:RotatingFileHandler"$sel:formatter:RotatingFileHandler$sel:file:RotatingFileHandler!$sel:encoding:RotatingFileHandler!$sel:maxBytes:RotatingFileHandler$$sel:backupCount:RotatingFileHandler$sel:stream:RotatingFileHandler$fHandlerRotatingFileHandler$fGenericRotatingFileHandler$fEqRotatingFileHandler FileHandler$sel:level:FileHandler$sel:filterer:FileHandler$sel:formatter:FileHandler$sel:file:FileHandler$sel:encoding:FileHandler$sel:stream:FileHandler$fHandlerFileHandler$fGenericFileHandler$fEqFileHandlerSink$sel:logger:Sink$sel:level:Sink$sel:filterer:Sink$sel:handlers:Sink$sel:disabled:Sink$sel:propagate:Sink$fFilterableSinkManagerrootsinksdisabledcatchUncaughtException initialize terminateLoggingT runLoggingTlogvdebuginfowarnerrorfatalrunConfigException$sel:message:ConfigExceptionConfig$sel:sinks:Config$sel:handlers:Config$sel:formatters:Config$sel:timezone:Config$sel:disabled:Config"$sel:catchUncaughtException:Config$sel:file:StreamHandler$sel:encoding:StreamHandler$sel:maxBytes:StreamHandler$sel:backupCount:StreamHandler$sel:timezone:StreamHandler$sel:rotateTime:StreamHandler createManager$fFromJSONHandler$fFromJSONSink$fFromJSONConfig$fExceptionConfigException$fShowConfigException$fGenericHandler $fShowHandler $fGenericSink $fShowSink$fGenericConfig $fShowConfig getManagergetManagerFileghc-prim GHC.TypesInt'vformat-0.14.1.0-FjBEQZBLcZeAvhC3WLcuh1 Text.Formatformat1 time-1.8.0.2%Data.Time.LocalTime.Internal.TimeZoneTimeZonebase GHC.Conc.SyncThreadIdGHC.IO.Handle.TypesHandleGHC.MVarMVar GHC.IORefIOReflogControl.Monad.IO.ClassMonadIOGHC.BaseStringGHC.IO.EncodingmkTextEncodingbytestring-0.10.8.2Data.ByteString.Internal ByteStringversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName