【问题标题】:Play Framework: Logging time播放框架:记录时间
【发布时间】:2015-07-23 15:36:56
【问题描述】:

我一直在使用 Play Framework,但与许多事情一样,我在定义向日志添加时间戳的日志模板时没有遇到过。 对于每分钟处理许多请求/Akka 消息的服务,这使得日志记录几乎毫无用处。 例如,我们使用 Play logger 有点像这样;

Logger.error("could not fulfil request", someException)

文档是这样的。文档确实指定,可以定义自己的日志记录头,例如;

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 的默认日志记录行为?

【问题讨论】:

    标签: scala logging playframework


    【解决方案1】:

    Play使用Logback,可以在conf/logback.xml配置日志格式。

    log/application.log 中的日志默认会带有日期戳,而 STDOUT 则不会。将%date 添加到 STDOUT 附加程序中的模式。

      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%date %coloredLevel %logger{15} - %message%n%xException{10}</pattern>
        </encoder>
      </appender>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 2015-08-10
      相关资源
      最近更新 更多