<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</layout>
</appender>
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--<!–路径–>-->
<fileNamePattern>%d.info.log</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMismatch>DENY</onMismatch>
<onMatch>ACCEPT</onMatch>
</filter>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--<!–路径–>-->
<fileNamePattern>%d.err.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="fileInfoLog" />
<appender-ref ref="consoleLog" />
<appender-ref ref="fileErrorLog" />
</root>
</configuration>
注意点:
<level>ERROR</level>
<onMismatch>DENY</onMismatch>
<onMatch>ACCEPT</onMatch>
意思是:匹配 error的等级 则 输出 不匹配则拒绝
使用的日志工具:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger LOGGER = LoggerFactory.getLogger("MyGlobalExceptionHandler");
打印异常堆栈信息使用下述工具:
import org.apache.commons.lang.exception.ExceptionUtils;
LOGGER.error(ExceptionUtils.getFullStackTrace(e));
over