我有一个 Haskell
Yesod
网络服务器,它运行完美,并且日志记录完美1!
postFailed :: String -> String -> Handler Value
postFailed errorMsg _filename = do
$logInfoS "(Parser)" (Data.Text.pack errorMsg)
returnJson (Error "FAILED" errorMsg _filename)
如何控制日期/时间格式?删除源代码 loc
@(main:Main ...)
等?
20/Oct/2024:13:12:39 +0000 [Info#(Parser)] Error[< ... omitted ... >] @(main:Main src/Main.hs:76:6)
当我查看docs时,我找不到任何相关内容。
1完整代码在这里
日志记录通常是通过
getLogger
实例的 Yesod
方法进行配置的,您可以覆盖该方法。默认情况下为 defaultMakeLogger
,又定义为
defaultMakeLogger :: IO Logger
defaultMakeLogger = do
loggerSet' <- newStdoutLoggerSet defaultBufSize
(getter, _) <- clockDateCacher
return $! Logger loggerSet' getter
这里的
getter
只是一个 IO ByteString
,它提供了已格式化的当前日期时间,因此如果您想要不同的格式,您可以将其替换。
您可以使用 newTimeCache
中的
fast-logger
来实现此目的,它具有正确的签名,并允许您以 strftime
格式传递时间格式。或者您可以输入任何您喜欢的内容,只要它是一个 IO ByteString
即可返回您喜欢的当前时间格式。