logback输出多个日志文件

来源:互联网 发布:网络诽谤罪的管辖 编辑:程序博客网 时间:2024/06/05 04:11

以前一直用slf4j+logback作为应用程序的日志组件,部署时,将日志输入到文件,以备检视。

<?xml version="1.0" encoding="UTF-8"?><configuration><appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>bau.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>logs/xxx.%d{yyyy-MM-dd}.log.zip</fileNamePattern></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%-20(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n</pattern></encoder></appender><root level="WARN"><appender-ref ref="file" /></root></configuration> 


最近一个项目中,需要将系统的一些信息记录到文件中,考虑到以后可能会加一些需求,如日志的格式,日志按一定大小切割,还是按时间切割等,手工写起来还是比较烦琐的。

考虑到logback中已经有此功能。于是查了下文档:


<?xml version="1.0" encoding="UTF-8"?><configuration><appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>bau.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>logs/xxx.%d{yyyy-MM-dd}.log.zip</fileNamePattern></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%-20(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n</pattern></encoder></appender><appender name="event" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>E:\\event.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>E:\\event.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%msg%n</pattern></encoder></appender><logger name="cn.company.bau.desktop.composite.EventRealTimeComposite" level="INFO" additivity="false"><appender-ref ref="event" /></logger><root level="WARN"><appender-ref ref="file" /></root></configuration>  


新增一个event的appender名字叫event,新加一个logger,将其apender指定为event,指定其level为INFO,additivity="false"这个最重要,指定日志不向上一级输入。

之后,在类cn.company.bau.desktop.composite.EventRealTimeComposite中,就可以用logger.info("xxx")输出日志,日志会记录到event.log中,并按策略生成,以供分析


总结:

充分利用开源组件的特性,而且功能丰富

代码只写一行,大提高了生产效率


原创粉丝点击