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, попробуйте удалить любое явное объявление зависимости, чтобы вы увидели те же версии библиотеки в своем дереве зависимостей.

Надеюсь, поможет.

Другие вопросы по тегам