我一直在使用 Play Framework,但与许多事情一样,我没有遇到过定义向日志添加时间戳的日志记录模板。 对于每分钟处理许多请求/Akka 消息的服务,这使得日志记录几乎毫无用处。 例如,我们使用 Play logger 有点像这样;
Logger.error("could not fulfil request", someException)
文档是这样的。该文档确实指定,可以定义您自己的日志记录 header ,例如;
val exceptionLogger = Logger("exception")
// and then
exceptionLogger.error("while handling some/request", someException)
上述产生的日志条目不包含任何类型的时间戳;
[error] exception - while handling some/request ...
没有提到任何时间。现在,解决方法(不是最漂亮的)是这样的;
def exceptionLogger = {
val dt = new DateTime
Logger(s"$dt exception")
}
哪个可以胜任,但我不确定。有没有更好的方法来格式化 Play 的默认日志记录行为?
最佳答案
Play使用了Logback,你可以在conf/logback.xml
中配置日志格式。
默认情况下,log/application.log
中的日志将具有日期戳,STDOUT 则不会。将 %date
添加到 STDOUT appender 中的模式。
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date %coloredLevel %logger{15} - %message%n%xException{10}</pattern>
</encoder>
</appender>
关于scala - Play Framework : Logging time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31592000/