h$       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg h i j k l m n o p q r s t uv w x y z { | } ~   Safe-Inferred #$<: 01:23456789;< 01:23456789;<None #$<y  =>?@A = >?@ANone #$<=DEFGHIJKLMNOPQRSTUVWXYZ[\]^_O=KLMNHIJDEFGPQRSTUVWXYZ[\]^_None #$<`a`aNone #$<= -,+*)('&%bcde b-,+*)('&%cdeNone #$<}  None #$<ff None #$<HpBlammo Create a i7 that will capture log messages instead of logging themSee Blammo.Logging.LoggedMessages for more details.qBlammoReturn the logged messages if p was used#If not, the empty list is returned.rBlammoq+ but ignore any messages that fail to parsesBlammoq but  if any messages failed to parse-,+*)('&%ghijklmnopqrsighoklmnp-,+*)('&%qrsjNone #$<4   !"#$/.DEFGHIJKLMNOTUVWXghiou4O KLMNHIJDEFGTUVWXighou/. $#"!  None #$<vBlammo Construct a i% configured via environment variableswBlammo Construct a i0 configured via environment variables and use it6   !"#$/.DGEFHIJKNLMOTUVWXghiouvwvw None #$< yBlammoAdd context to any logging done from the request-handling threadzBlammoy, but have the  available{Blammo8Log requests (more accurately, responses) as they happen*In JSON format, logged messages look like: ${ ... message: { text: "GET foo*bar => 200 OK", meta: { method: GET, path: "foobar", query: "?baz=bat&quix=quo", status: { code: 200, message: OK }, durationMs: 1322.2, requestHeaders: { Authorization: "***", Accept: "text/html", Cookie: "***" }, responseHeaders: { Set-Cookie: "***", Expires: "never" } } } } }Blammo'Change the source used for log messages Default is  requestLogger.~BlammoChange how the  destinationIp field is determinedDefault is looking up the  x-real-ip header.xyz{|}~yz{x|}~  Safe-Inferred #$<              !"#$"#%"#&"#'"#("#)"#*"#+"#,"#-"#."#/01201301401501601701801901:01;01<01=0>?0>@0>A0>B0>C0>D0>E0>F0>F0>G0>HIIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgWhijklmnopqrsXtuvwxyz{| } ~         {                     %Blammo-1.0.2.2-B6OkBsPT6Ev1IkmSlr3wCPBlammo.LoggingData.Aeson.Compat$Blammo.Logging.LogSettings.LogLevelsBlammo.Logging.TestBlammo.Logging.ColorsBlammo.Logging.LogSettingsBlammo.Logging.LogSettings.EnvBlammo.Logging.TerminalBlammo.Logging.LoggerBlammo.Logging.SimpleNetwork.Wai.Middleware.Logging Paths_Blammo$aeson-2.1.0.0-GgjidZZQSynIgq9Mjgy5MFData.Aeson.Types.ToJSON.=Data.Aeson.Encoding.InternalSeriesData.Aeson.Types.InternalPairData.Aeson.KeyMaptoListfromList singletonnullemptyKeyMapData.Aeson.KeytoTextfromTextKeyexceptions-0.10.4Control.Monad.Catch MonadMask*monad-logger-0.3.36-H5zYEzBAZGhDkpMBZIJRQBControl.Monad.Logger LevelOther LevelError LevelWarn LevelInfo LevelDebugLogLevel LogSourcemonadLoggerLog MonadLogger askLoggerIO MonadLoggerIOLoggingT1monad-logger-aeson-0.3.0.2-J7eIAAPLRHr6nksM57cakoControl.Monad.Logger.AesonmyThreadContextwithThreadContext logOtherNS logErrorNS logWarnNS logInfoNS logDebugNSlogOtherlogErrorlogWarnlogInfologDebug#Control.Monad.Logger.Aeson.InternalloggedMessageMetaloggedMessageTextloggedMessageThreadContextloggedMessageLogSourceloggedMessageLocloggedMessageLevelloggedMessageTimestamp LoggedMessage:#MessageColorsgrayblackcyanmagentablueyellowgreenredbolddim getColors LogLevels newLogLevels readLogLevelsshouldLogLeveldefaultLogLevels $fEqLogLevels$fShowLogLevelsLogColor LogColorAutoLogColorAlways LogColorNever LogFormat LogFormatJSONLogFormatTerminalLogDestinationLogDestinationStdoutLogDestinationStderrLogDestinationFile LogSettingsreadLogDestination readLogFormat readLogColordefaultLogSettingssetLogSettingsLevelssetLogSettingsDestinationsetLogSettingsFormatsetLogSettingsColorgetLogSettingsLevelsgetLogSettingsDestinationgetLogSettingsFormatgetLogSettingsColorshouldColorAutoshouldColorHandleparseparserLoggedMessagesnewLoggedMessages appendLogStrgetLoggedMessagesreformatTerminal HasLoggerloggerLLoggergetLoggerLoggerSetgetLoggerReformatgetLoggerShouldLog pushLogStrLn flushLogStr newLogger newTestLoggergetLoggedMessagesLenientgetLoggedMessagesUnsafe$fHasLoggerLoggerrunLoggerLoggingT newLoggerEnvrunSimpleLoggingTConfigaddThreadContextaddThreadContextFromRequest requestLogger defaultConfigsetConfigLogSourcesetConfigGetDestinationIprequestLoggerWith(unliftio-0.2.22.0-8XX2qytUiYHJDqmPuk7olCUnliftIO.Exception throwString wai-3.2.3-BLrwfdFdeMQ1KnKjrnSyUlNetwork.Wai.InternalRequestversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName