<?xml version="1.0" encoding="UTF-8"?> <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出 --> <!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数 --> <configuration status="debug" monitorInterval="30"> <!--<contextName>log4j2</contextName>--> <properties> <!--${sys:catalina.home}表示linux中环境变量中的tomcat根目录 用户主目录--> <!--原来用logback时候在统一配置中心也配置一个logging.path=/opt/tomcat-log/${spring.application.name} LOG_PATH是内置变量--> <!--${sys:user.home} 用户主目录--> <!-- <Property name="log_path">${sys:user.home}/logs</Property>--> <!-- <Property name="log_path" value="./logs/" />--> <property name="console_log_pattern">%d|%t|%traceId|%-5level|%F:%L|%M|%m%n</property> <!-- 保留日志天数 D H M S 分别对应天 小时 分钟 秒 --> <property name="KEEP_LOG_DAY">60D</property> <!-- 日志切割的最小单位 --> <property name="EVERY_FILE_SIZE">100M</property> </properties> <!--先定义所有的appender --> <appenders> <console name="Console" target="SYSTEM_OUT"> <!--输出日志的格式 --> <PatternLayout charset="UTF-8" pattern="${console_log_pattern}"/> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> </console> <!--这个输出控制台的配置 --> <!--<console name="Console" target="SYSTEM_OUT" follow="false">--> <!--<!–输出日志的格式 –>--> <!--<PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />--> <!--</console>--> <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 --> <RollingFile name="RollingFileInfo" fileName="${sys:logging.path}/logs/overtime.log" filePattern="${sys:logging.path}/logs/$${date:yyyy-MM-dd}/info-%d{yyyy-MM-dd}-%i.log"> <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) --> <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" /> <!--<Filters>--> <!--<ThresholdFilter level="INFO"/>--> <!--<ThresholdFilter level="WARN" onMatch="DENY"--> <!--onMismatch="NEUTRAL"/>--> <!--</Filters>--> <PatternLayout charset="UTF-8" pattern="${console_log_pattern}"/> <Policies> <!-- 归档每天的文件 --> <!--<TimeBasedTriggeringPolicy interval="1" modulate="true"/>--> <TimeBasedTriggeringPolicy /> <!-- 限制单个文件大小 --> <SizeBasedTriggeringPolicy size="${EVERY_FILE_SIZE}"/> </Policies> <!-- 限制每天文件个数 --> <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了100 --> <DefaultRolloverStrategy max="256"> <Delete basePath="${sys:logging.path}/logs/" maxDepth="3"> <IfFileName glob="*/*info*.log"/> <IfLastModified age="${KEEP_LOG_DAY}"/> </Delete> </DefaultRolloverStrategy> </RollingFile> </appenders> <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效 --> <loggers> <!--过滤掉spring和mybatis的一些无用的DEBUG信息 --> <logger name="org.springframework" level="debug" > <ThresholdFilter level="debug"/> <appender-ref ref="RollingFileInfo" /> </logger> <logger name="org.mybatis" level="DEBUG" > <ThresholdFilter level="debug"/> <appender-ref ref="RollingFileInfo" /> </logger> <logger name="com.canrd.shop" level="DEBUG" > <ThresholdFilter level="debug"/> <appender-ref ref="RollingFileInfo" /> </logger> <!--<root level="all">--> <root level="debug"> <appender-ref ref="Console" /> </root> </loggers> </configuration>