Play 2.1 (Java) 및 Play와 함께 제공되는 기본 로그백 (1.0.7) 로거를 사용하고 있습니다. 내 컨트롤러 중 하나에서 "play.Logger"를 사용하여 디버그 로그 메시지를 인쇄하고 있습니다. logger.xml에 "%class
"이 언급되어 있지만 발신자 클래스 이름이 인쇄되지 않습니다. "play.Logger$ALogger
"이 인쇄됩니다. logback의 ch.qos.logback.classic.spi.CallerData
까지 호출자 클래스를 식별하는 배열로 stacktrace를 반환 할 때까지 디버깅했습니다. 배열에서 내 호출자 컨트롤러 클래스는 배열의 맨 아래에있는 반면 "play.Logger.ALogger
"항목은 "ch.qos.logback.classic.pattern.ClassOfCallerConverter
"에서 name(cda[0].getClassName())
클래스를 인쇄하는 데 사용됩니다.PlayFramework 로그백 인쇄 호출자 클래스 이름
다른 유사한 스레드 here과 here을 보았지만 해결하지 못했습니다.
은 여기 내 XML 내가 모르는 뭔가가
<appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${application.home}/logs/debug_log.log</file>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date - [%level] - from %logger %class in %thread %n%message%n%xException%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${application.home}/logs/debug_log.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
암입니까?