slf4j + logback 简单配置及实现

来源:互联网 发布:帝范译文非知之难 编辑:程序博客网 时间:2024/06/05 08:09

logback官网: http://logback.qos.ch/

slf4j官网:www.slf4j.org/

分别下载压缩包,解压得到jar包和源代码,文档

在只需要一般日志功能的情况下只分别需要 

logback-core-0.9.30.jar

logback-classic-0.9.30.jar

slf4j-api-1.6.2.jar

注意,如果添加包过多,则可能导致冲突,bind出错


编写logback.xml,设定输出日志到文件的方式,放入到工程目录即可。 可以在工程初始化的时候,编写加载配置文件类,加载配置文件。 也可以命名为:logback.xml或者logback-test.xml或者logback.groovy, Logback会自动到当前工程目录进行搜索上面的三个配置文件。

<?xml version="1.0" encoding="UTF-8" ?><configuration><property name="log.dir" value="logs" /><appender name="activity" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/activity.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/activity.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><appender name="SessionManagement" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/session.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %p [%c] [%t] %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/session.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><appender name="KPI" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/KPI.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/KPI.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><appender name="sensitive" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/sensitive.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/sensitive.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><appender name="infoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/info.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %p [%c] [%t] %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/info.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><appender name="errorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/error.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %p [%c] [%t] %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>ERROR</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/error.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><appender name="debugLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/debug.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %p [%c] [%t] %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>DEBUG</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/debug.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><appender name="location" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/location.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/location.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><appender name="location_history" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${log.dir}/location_history.log</File><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} : %m%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.dir}/location_history.log.%d{yyyy-MM-dd}</fileNamePattern></rollingPolicy></appender><logger name="activity" additivity="false" level="INFO"><appender-ref ref="activity" /></logger><logger name="SessionManagement" additivity="false" level="INFO"><appender-ref ref="SessionManagement" /></logger><logger name="KPI" additivity="false" level="INFO"><appender-ref ref="KPI" /></logger><logger name="location" additivity="false" level="INFO"><appender-ref ref="location" /></logger><logger name="location_history" additivity="false" level="INFO"><appender-ref ref="location_history" /></logger><logger name="sensitive" additivity="false" level="INFO"><appender-ref ref="sensitive" /></logger><logger name="org.springframework.beans.factory" level="ERROR" /><root level="INFO"><appender-ref ref="infoLog" /><appender-ref ref="errorLog" /><appender-ref ref="debugLog" /></root></configuration>

编写测试用例

public static void main(String []args) {        Logger logger = LoggerFactory.getLogger(Main.class);        logger.debug("Hello world.");        LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();        StatusPrinter.print(lc);}