Play 框架 2.5 记录“?”问号而不是行号

Vas*_*802 5 logging scala logback playframework playframework-2.5

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

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

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

[info] application ? - Checking cart...
Run Code Online (Sandbox Code Playgroud)

我还尝试遵循这个问题的公认答案:Scala Play framework: logger pattern for display file and line
and put val logger = Logger(this.getClass)inside my class。结果还是一样。有什么办法可以解决吗?build.sbt 中指定的 Logback 版本是2.11.

Saj*_*ani 5

我添加includeCallerData并工作

   <appender  name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="STDOUT"/>
        <includeCallerData>true</includeCallerData>
    </appender>
Run Code Online (Sandbox Code Playgroud)


mil*_*use 1

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

但我注意到,我没有在任一应用程序的build.sbt.

这会导致(对于 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
Run Code Online (Sandbox Code Playgroud)

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

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

希望能帮助到你。