slf4j + logback 简单配置及实现

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);

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值