!D      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl m n o p q r s t u v w x y z { | } ~  None log4hs;A class for datatypes that can be converted to log message.Safelog4hs" 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)TrueSafe log4hs  is just a name.  Safe  None"7d,3log4hsA " 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.+log4hsSee "vformat-aeson" package+" !#$%&'()*+" !#$%&'()*None-/log4hs/A class represents a common trait of filtering s/0None"#71log4hsList of Filter2log4hs2-s are used to perform arbitrary filtering of s.Sinks and Handlers can optionally use 2 to filter is as desired. It allows events which are below a certain point in the sink hierarchy. For example, a 2 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.5log4hsIf two 2 s have same   (name), they are equal.123231None &'=>?@AkC9log4hs5A type class that abstracts the characteristics of a 9:log4hsInitialize the 9 instance;log4hs6Emit 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.<log4hsTerminate the 9 instance=log4hsHandle  and decide whether to call ;.(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 9 instance, it wraps all other 9 instances into one type.The @0 type is the root of the handler type hierarchy. 9<=:>;?@ANoneD /09<=:>;?@A/0@A9<=:>;?None"#7Q Blog4hs)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 B- 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.Clog4hsEvery n minute(s)Dlog4hsEvery n hour(s)Elog4hsAt zero clock of a weekdayFlog4hsEvery n day(s)Glog4hs3A datatype indicates a day of Monday-starting week.Olog4hsTA handler type which logs to a file and rotates the log at cerntain timed intervals.Vlog4hs(In most cases, it is the same value as Manager'Fs timezone, but it won't cause problems if you set a different value.[log4hs6Monday-starting week means Monday is 1 and Sunday is 7BFECDGHIJKLMNOPZUTQRSVWXYOPZUTQRSVWXYGHIJKLMNBFECDNone"#7dTclog4hsSA handler type which writes logging records, appropriately formatted, to a stream.hlog4hsMust be writable cdhefgcdhefg None"#7dYllog4hsxA handler type which writes logging records, appropriately formatted, to a file, it will rotate when file is too large. Since 0.3.0slog4hs:Actual file size may be slightly larger than this value.ulog4hs0Don't open file manually, initialized as empty  and use : or "Logger.Manager.initialize" lmurqnopts lmurqnopts None"#7d]ylog4hsQA handler type which writes logging records, appropriately formatted, to a file.log4hs*Don't open file manually, initialized as  undefined and use : or "Logger.Manager.initialize"yz~{|}yz~{|} None"#dllog4hs% 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"#rlog4hsLogging 7 which holds the hierarchy of sinks and other settings.Since v0.7.0, the 0 of the logging environment can be configurable.log4hslog4hsSince 0.8.0, unhandled  Exception5s are logged only in the global logging environment.log4hs Initialize a , open all its handlers.log4hs Terminate a , close all its handlers. None"#$XdksNonelog4hs(Log "message" with the severity "level".The missing type signature: ( m,  s,  c) =>   ->  -> s -> c ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c ->  m ()Nonelog4hs(Log "message" with the severity "level".The missing type signature: ( m,  s) =>   ->  -> s ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s ->  m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s ->  m () None:None"#Ilog4hs#Run the global logging environment.6Run 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 ... Note: If there is an unhandled 1 in your application, it will be logged into the root Sink, and then rethrown.None log4hs(Log "message" with the severity "level".The missing type signature: ( m,  s,  c) =>   ->  -> s -> c -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s,  c) =>   -> s -> c -> m ()Nonelog4hs(Log "message" with the severity "level".The missing type signature: ( m,  s) =>   ->  -> s -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s -> m ()log4hs'Log "message" with a specific severity.The missing type signature: ( m,  s) =>   -> s -> m ()NoneTNone"#7dnlog4hslog4hslog4hsSee , 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.!!Nonelog4hs decode a  from strict log4hs decode a  from a fileNoneflog4hs decode a  from strict log4hs decode a  from a fileNoneNoneM +" !#$%&'()*/01239<=:>;?@Acdhefglmurqnoptsyz~{|}(c) 2019 Version CloudBSD3 Jorah Gao <log4hs@version.cloud> experimentalportableNoneT +" !#$%&'()*/01239<=:>;?@Acdhefglmurqnoptsyz~{|} Safe' !Safe"#$%%&'()*+,-./0123456789:;<==>?@ABCDEFGHIJKLMNOPQRRSTUVWXYZ[\]^__`abcdefghijklmmnopqrstuvwxyz{|}~         s Xm!!!!!!!!%log4hs-0.8.0.0-GtFHlczQDlbHz8CY3yeylt Logging.Class Logging.LevelLogging.LoggerLogging.PreludeLogging.RecordLogging.Filter'Logging.Handler.TimeRotatingFileHandlerLogging.Handler.StreamHandler#Logging.Handler.RotatingFileHandlerLogging.Handler.FileHandler Logging.SinkLogging.Manager Logging.MonadLogging.Monad.TH.ContextLogging.Monad.THLogging.GlobalLogging.Global.TH.ContextLogging.Global.THLogging.Config.TypeLogging.Config.YamlLogging.Config.JsonLogging.Class.MessageTextFormatLogging.Class.FilterableLogging.Class.HandlerLogging.Monad.InternalLogging.Global.Internal Logging.TH Logging.TypesLogging Logging.Utils Paths_log4hs IsMessage toMessage toMessageListLevel$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$sel:context: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: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.ClassMonadIO$aeson-1.4.6.0-GeeCNPxAQoKGKiLrCc0oRWData.Aeson.Types.ToJSONToJSONGHC.Exception.Type ExceptionGHC.IO.EncodingmkTextEncodingbytestring-0.10.8.2Data.ByteString.Internal ByteStringversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName