子节点一
appender用来格式化日志输出节点,有俩个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。
控制台输出ConsoleAppender:
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n
表示对日志进行编码:
%d{yyyy-MM-dd’ 'HH:mm:ss.sss}——日志输出时间 %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用 %-5level——日志级别,并且使用5个字符靠左对齐 %logger{36}——日志输出者的名字 %msg——日志消息 %n——平台的换行符;
ThresholdFilter为系统定义的拦截器,例如我们用ThresholdFilter来过滤掉ERROR级别以下的日志不输出到文件中。如果不用记得注释掉,不然你控制台会发现没日志。
输出到文件RollingFileAppender
一种常见的日志输出到文件,随着应用的运行时间越来越长,日志也会增长的越来越多,将他们输出到同一个文件并非一个好办法。RollingFileAppender用于切分文件日志:
<appender name=“INFO-LOG”
class=“ch.qos.logback.core.rolling.RollingFileAppender”>
ERROR
DENY
ACCEPT
${LOG_INFO_HOME}//%d{yyyy-MM-dd}_%i.log
30
<timeBasedFileNamingAndTriggeringPolicy
class=“ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP”>
64 MB
%d{yyyy-MM-dd HH:mm:ss:SSS} %-5level [%thread] %logger{50}-%L %msg%n
其中重要的是rollingPolicy的定义,上例中${LOG_INFO_HOME}//%d{yyyy-MM-dd}_%i.log
定义了日志的切分方式——把每一天的日志归档到一个文件中,30表示只保留最近