【问题标题】:Play framework 2.5 logs `?` question marks instead of line numbers播放框架 2.5 记录 `?` 问号而不是行号
【发布时间】:2017-05-29 11:35:02
【问题描述】:

我有一个具有所有标准配置的游戏框架应用程序。我这样修改logback.xml

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

我尝试将 %L 放在那里而不是 %line%class 等 - 结果都相同,它在日志消息中输出 ?,如下所示:

[info] application ? - Checking cart...

我也尝试遵循这个问题的公认答案:Scala Play framework: logger pattern for displaying file and line
并将val logger = Logger(this.getClass) 放入我的班级。结果还是一样。有什么办法可以解决吗? build.sbt 中指定的 logback 版本是2.11

【问题讨论】:

  • 尝试在你的appender标签内添加&lt;includeCallerData&gt;true&lt;/includeCallerData&gt;
  • 不,没有帮助。也试过&lt;appender includeCallerData="true"

标签: scala logging playframework logback playframework-2.5


【解决方案1】:

我添加includeCallerData 并工作

   <appender  name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="STDOUT"/>
        <includeCallerData>true</includeCallerData>
    </appender>

【讨论】:

    【解决方案2】:

    在您的问题中使用 %L 在 Play 2.4 和 Play 2.5 中都非常适合我(确切版本:2.4.62.5.12)。

    但我注意到,我没有在任一应用程序的 build.sbt 中明确声明任何所需的 logback 版本。

    这会导致(对于 Play 2.5 应用):

    +-com.typesafe.play:play-logback_2.11:2.5.12 [S]
    | +-ch.qos.logback:logback-classic:1.1.7
    | | +-ch.qos.logback:logback-core:1.1.7
    | | +-org.slf4j:slf4j-api:1.7.20 (evicted by: 1.7.21)
    | | +-org.slf4j:slf4j-api:1.7.21
    

    (通过sbt-dependency-graph插件的依赖树)

    如果您看到不同的 logback 版本,请尝试删除任何显式的依赖声明,以便在依赖树中看到相同的库版本。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 1970-01-01
      相关资源
      最近更新 更多