<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout clas="ch.qos.logback.classic.PatternLayout">
<pattern>
%d - %LOG_LEVEL - %msg%n
</pattern>
</layout>
</appender>
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<!–过滤输出到日志文件的日志内容–>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>
<!–只配置这个还是会输出ERROR等级的日志,因为error level > info level;拦截的是>=info等级的内容–>
INFO
</level>
</filter>-->
<!--要用下面这种方式才能过滤输出到日志文件的ERROR信息,类似switch case,onMatch和onMisMatch中的指令在LevelFilter类的FilterReply中可以看到-->
<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<!–匹配到上面level的ERROR等级日志时,禁止输出到日志文件中–>
<onMatch>DENY</onMatch>
<!–匹配到上面的ERROR日志时,输出到日志文件中,(还有一个指令NEUTRAL,代表当前这条策略不做操作,让下一条策略去匹配)–>
<onMismatch>ACCEPT</onMismatch>
</filter>-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>NEUTRAL</onMismatch>
</filter>
<encoder>
<pattern>
%d - %p - %msg%n
</pattern>
</encoder>
<!--滚动策略,按照时间滚动-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路径要先去建好,不然会报错,linux/Mac下要给予可写权限,sudo chmod -R 777 /var/log/tomcat
windows 类似,D:\log\tomcat-->
<fileNamePattern>
<!--在文件名中带上时间,配置完后要在下面root level中指定这个配置-->
D:\tomcat\info.%d.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>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>
%d - %p - %msg%n
</pattern>
</encoder>
<!--滚动策略,按照时间滚动,每天创建一个文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路径要先去建好,不然会报错,linux/Mac下要给予可写权限,sudo chmod -R 777 /var/log/tomcat
windows 类似,D:\log\tomcat-->
<fileNamePattern>
<!--在文件名中带上时间,配置完后要在下面root level中指定这个配置-->
D:\tomcat\error.%d.log
</fileNamePattern>
</rollingPolicy>
</appender>
<!--root代表整个项目的日志等级-->
<root level="INFO">
<!--上面配置的appender中的name-->
<appender-ref ref="consoleLog"/>
<appender-ref ref="fileInfoLog"/>
<appender-ref ref="fileErrorLog"/>
</root>
</configuration>
<encoder>
<pattern>
%d - %p - %msg%n
</pattern>
</encoder>
输出格式中%d是时间,%p是日志等级,%msg是信息,%n是换行
具体这些信息可以参考官网文档:
https://logback.qos.ch/manual/layouts.html
官网patternlayout部分!