運用時の監視用に普段出してるログと同じパッケージで
ERROR が出た時だけ、外のファイルにも出したい時とかあるよね!!
で、普段のログは 30 日とっておけばいいけど、そっちのログは手動以外では消せないようにしたいとかあるよね!!
っていうか実際にあったんだ……
で、色々調べてもわからなかったんだけど、
id:daisuke-m が調べて教えてくれた!!!
ありがとう!!
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <Target>System.out</Target> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d [%thread] %-5level %logger{35} - %msg%n </Pattern> </layout> </appender> <!--Daily rolling file appender --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>logging.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>logging.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d [%thread] %-5level %logger{35} - %msg%n </Pattern> </layout> </appender> <!--Daily rolling file appender --> <appender name="ALERT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>/var/log/alert_log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>/var/log/alert_log.%d{yyyy-MM-dd}</FileNamePattern> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d [%thread] %-5level %logger{35} - %msg%n </Pattern> </layout> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"><!-- これ --> <level>ERROR</level> </filter> </appender> <logger name="org.yoshiori" level="DEBUG"> <appender-ref ref="FILE" /> <appender-ref ref="ALERT" /> </logger> <root> <level value="INFO" /> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> </configuration>
appender の方で filter 掛ければ良いっぽい
http://logback.qos.ch/manual/filters.html#thresholdFilter
ちなみに特定レベルのみを無視したりしたい時には
http://logback.qos.ch/manual/filters.html#levelFilter
使えばいいみたい!!!