scala - Play Framework : Logging time

标签 scala logging playframework

我一直在使用 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/

相关文章:

Scala:Play2 中的 def 与 val

scala - 依次执行 Scala Futures

Scala - 转换后撤消平面图

scala - 你把包裹在单子(monad)里的数据叫做什么?

java - 在 windows 7 上安装 play framework 2.4

logging - 如何在 “docker logs”中禁止马拉松访问日志?

c# - 使用 log4net 在运行时读取并记录 HttpSession 数据

java - 如何从 java.util.logging.Logger Logging 记录消息,然后将其打印到文本文件?

Java OpenSSL 验证和获取公钥

playframework - 理解 "Welcome to Play 2.0"页面创建