<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--
status : 这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出
monitorInterval : Log4j能够自动检测修改配置文件和重新配置本身, 设置间隔秒数。
-->
<Configuration status="WARN" monitorInterval="600">
<!-- 变量配置-->
<Properties>
<!-- (*必须,各应用需要修改) 部署应用的名称,命名规则 :全部小写字母、中短横线、数字,与微服务命名,disconf中命名一致 -->
<property name="APPNAME">studentSign</property>
<!-- *必须并强制遵守 日志文件的编码 -->
<property name="log_charset">UTF-8</property>
<!--输出日志格式-->
<property name="log_pattern">
%d{yyyy-MM-dd HH:mm:ss} [%-5p] [%t] %c{1}:%L - %msg%n
</property>
<!-- 配置日志文件输出目录 -->
<Property name="LOG_HOME">D:\Idea_workspace\studentsign\logs</Property>
</Properties>
<Appenders>
<!--这个输出控制台的配置-->
<console name="Console" target="SYSTEM_OUT">
<!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
<!--输出日志的格式 %l :表示某个类-->
<!--
%d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生产时间
%p : 日志输出格式
%c : logger的名称
%m : 日志内容,即 logger.info("message")
%n : 换行符
%C : Java类名
%L : 日志输出所在行数
%M : 日志输出所在方法名
-->
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%-5p] [%t] %c{1}:%L - %msg%n"/>
</console>
<!-- 打印出所有的info及以下级别的信息,每次大小超过size,
则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
<RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/${APPNAME}-info.log"
filePattern="${LOG_HOME}/%d{yyyy-MM}/${APPNAME}-info-%d.%i.log.gz">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<!-- 日志输出格式 -->
<PatternLayout charset="${log_charset}" pattern="${log_pattern}"/>
<!-- 以下是日志压缩包目录的建议格式名称 建议1天归档依次,压缩文件上线建议为200 -->
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<SizeBasedTriggeringPolicy size="20 MB"/>
</Policies>
</RollingFile>
<!-- ERROR日志格式 -->
<RollingFile name="RollingFileError" fileName="${LOG_HOME}/${APPNAME}-error.log"
filePattern="${LOG_HOME}/%d{yyyy-MM}/${APPNAME}-error-%d.%i.log.gz">
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout charset="${log_charset}" pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<SizeBasedTriggeringPolicy size="20 MB"/>
</Policies>
</RollingFile>
</Appenders>
<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
<Loggers>
<!-- 配置日志的根节点 -->
<root level="all">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileError"/>
</root>
<!-- 过滤掉spring和mybatis的一些无用的DEBUG信息 -->
<logger name="org.springframework" level="info"/>
<logger name="org.apache.http" level="warn"/>
<logger name="org.mybatis" level="INFO"/>
</Loggers>
</Configuration>