1
情報とエラーを別々のファイルに記録する必要があります。私は以下の設定を試みました。私はCACHE-AUDITとSERVICE_AUDITのログを取得しましたが、情報とエラーログのために何も印刷されません。私はここにいくつかの設定がありません。INFOとERRORのログが記録されない
logback.xml
<property name="LOG_HOME" value="E:\\logs"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<appender name="CACHE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/cache-service.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>cache-service.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>7</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} - %msg%n
</Pattern>
</encoder>
</appender>
<appender name="FILE-ERROR"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/error.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>error.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>7</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} - %msg%n
</Pattern>
</encoder>
</appender>
<appender name="FILE-INFO"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/info.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>info.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} - %msg%n
</Pattern>
</encoder>
</appender>
<appender name="SERVICE-AUDIT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/service-audit.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>service-audit.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} - %msg%n
</Pattern>
</encoder>
</appender>
<logger name="ch.base.cache" level="debug" additivity="false">
<appender-ref ref="CACHE-AUDIT"/>
</logger>
<logger name="ch.base.service.client" level="debug" additivity="false">
<appender-ref ref="SERVICE-AUDIT"/>
</logger>
<logger name="ch.base" level="info">
<appender-ref ref="FILE-INFO"/>
</logger>
<logger name="ch.base" level="error">
<appender-ref ref="FILE-ERROR"/>
</logger>
<root level="debug">
<appender-ref ref="STDOUT"/>
</root>
:へ
を情報と別のファイルのエラー.. – Trin
本当ですか?情報ログにはINFOとERRORの両方がありますが、エラーログにはしきい値フィルタがあるためにエラーが発生するだけです。とにかく、情報ログにINFOが正確に必要な場合は、ThresholdFilter'の代わりに 'LevelFilter'を試してみてください。 – jingx
私はThresholdFilterを削除しました。レベルのみが使用されます。同じログが両方のファイルに出力されます..レベルフィルタに基づいて分離が行われません。 – Trin