Play framework 2.5 записывает `?` Вопросительные знаки вместо номеров строк
У меня есть приложение Play Framework со всеми стандартными конфигурациями. Я модифицирую 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: шаблон логгера для отображения файла и строки
и положи val logger = Logger(this.getClass)
внутри моего класса. Все тот же результат. Есть ли способ это исправить? Версия logback, указанная в build.sbt: 2.11
,
2 ответа
Я добавить includeCallerData
и работа
<appender name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STDOUT"/>
<includeCallerData>true</includeCallerData>
</appender>
С помощью %L
как в вашем вопросе отлично работает для меня в Play 2.4 и Play 2.5 (точные версии: 2.4.6
а также 2.5.12
).
Однако я отмечаю, что я не указываю явно ни одну желаемую версию logback в любом приложении 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
(дерево зависимостей через плагин sbt-dependency-graph)
Если вы видите другую версию logback, попробуйте удалить любое явное объявление зависимости, чтобы вы увидели те же версии библиотеки в своем дереве зависимостей.
Надеюсь, поможет.