我有一个包含所有标准配置的play框架应用程序。我像这样修改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
。
答案 0 :(得分:2)
我添加includeCallerData
并工作
<appender name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STDOUT"/>
<includeCallerData>true</includeCallerData>
</appender>
答案 1 :(得分:1)
在您的问题中使用%L
在Play 2.4和Play 2.5中都非常适合我(确切版本:2.4.6
和2.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版本,请尝试删除任何显式依赖项声明,以便在依赖关系树中看到相同的库版本。
希望它有所帮助。