당신은 two different loggers : play
로거와 application
로거가 있습니다. 여기 개발 모드 logger.xml의 예입니다
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern>
</encoder>
</appender>
<logger name="play" level="INFO" />
<logger name="application" level="DEBUG" />
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
다음
재생 로거의 로그 레벨 설정> 정보 및 응용 프로그램 로거 (Logger.debug/warn/error
을 할 때 사용하는 하나) 로그 레벨 설정> 디버그. 루트 레벨은 모든 로거의 기본 레벨이지만 각 로거는 자체 레벨을 정의하므로 필요하지 않습니다.
prod-logger.xml 파일을 만들고 응용 프로그램을 실행하려면 start -Dlogger.resource=conf/prod-logger.xml
을 사용하십시오.
다음은 파일에 DEBUG를 저장하고 다른 파일에 WARN을 저장하는 두 개의 appender가있는 프로덕션 서버에 사용하는 구성입니다. 매일 파일 롤링을하는 TimeBasedRollingPolicy도 있습니다. 로깅 구성에 대한 자세한 세부 사항에 대한
<configuration>
<appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${application.home}/logs/debug_log.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
<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>
<appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${application.home}/logs/warn_log.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${application.home}/logs/warn_log.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>60</maxHistory>
</rollingPolicy>
</appender>
<logger name="play" level="INFO"/>
<logger name="application" level="INFO" />
<root level="WARN">
<appender-ref ref="FILE_DEBUG"/>
<appender-ref ref="FILE_WARN"/>
</root>
</configuration>
는
Logback
이 작동을 살펴 가지고 있지만, 생산 application.conf에서 'logger.application = DEBUG가'무시하는 이유를 나는 아직도 이해가 안 돼요. –
정확하게 말하자면 루트와 응용 프로그램 모두 디버그 로그 수준을 허용하지 않는 INFO 및 WARN 수준으로 설정되어 있으므로 FILE_DEBUG appender에 디버그 메시지를 저장하지 않습니다. "logger name ="application "레벨에서 'root level ="DEBUG "및 에서'root level ="WARN " = "DEBUG"/>. 어쨌든 당신의 매우 도움이되는 사례에 감사드립니다! –