Logback AsyncAppender не может напечатать имя метода и номер строки

Я использую logback AsyncAppender ch.qos.logback.core.rolling.RollingFileAppender для печати журналов в файл со следующей конфигурацией. Все работает нормально, если печатать на консоли, но в файле журнала имя метода и номер строки печатаются как "?" персонаж.

Конфигурация журнала

<appender name="activity_appender"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${log.folder}/${log.activity.fileName}</File>
        <encoder>
            <pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} -APP- %X{HOST} %X{requestId} [%t] %.-5level %logger{60}.%M-%L - %msg %n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${log.folder}/${log.activity.fileName}-%d{YYYY-MM-dd}.%i
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 100MB -->
                <maxFileSize>${log.file.maxsize}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

Пример вывода

2015-08-11 16:30:00.051 -APP-   [scheduler-1] WARN c.some.package.class.?-? - Configuration not present for configType:global or keysms.template Picking default value: 2 

Требуемый вывод

2015-08-11 16:30:00.051 -APP-   [scheduler-1] WARN c.some.package.class.method-98 - Configuration not present for configType:global or keysms.template Picking default value: 2 

person Himanshu Goel    schedule 11.08.2015    source источник
comment
возможный дубликат stackoverflow. ком/вопросы/13944641/   -  person user1516873    schedule 11.08.2015


Ответы (1)


Я столкнулся с той же проблемой и попробовал два способа ее исправить. они показаны ниже, но сработал только второй способ:

1: <includeCallerData>true</includeCallerData>

некоторые говорили, что хорошо решить проблему, но не для меня.

2: <param name="locationInfo" value="true" />

после добавления этой строки мне удалось заставить asyncappender выводить номер строки.

наслаждайтесь вторым способом!

person Shedom Wei    schedule 19.10.2016