lo4j2.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="WARN" monitorInterval="60">
<Properties>
<Property name="PID">????</Property>
<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
<Property name="LOG_LEVEL_PATTERN">%5p</Property>
<Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
<!-- 控制台日志格式化,包含颜色-->
<Property name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
<!-- 日志文件默认输出格式,不带行号输出(行号显示会影响日志输出性能);%C:大写,类名;%M:方法名;%m:错误信息;%n:换行 -->
<Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
<!-- 日志存储路径 -->
<property name="FILE_PATH" value="${ctx:log4j2.output.path}" />
<!-- 日志存储名称 -->
<property name="FILE_NAME" value="${ctx:log4j2.output.name}" />
<!-- 日志默认输出日志文件级别 -->
<property name="OUTPUT_LOG_LEVEL" value="${ctx:log4j2.output.level}" />
</Properties>
<!--定义appender -->
<Appenders>
<!-- 默认的控制台日志输出,一般生产环境都是后台启动,这个没太大作用 -->
<Console name="Console" target="SYSTEM_OUT" follow="false">
<PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
</Console>
<Async name="Async">
<AppenderRef ref="Console"/>
</Async>
<!-- debugger日志 -->
<RollingFile name="DebugLogger" fileName="${FILE_PATH}/${FILE_NAME}-debug.log" filePattern="${FILE_PATH}/debug/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
<Filters>
<ThresholdFilter level="DEBUG"/>
<ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<!--interval属性用来指定多久滚动一次,默认是1 hour-->
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<!--根据文件大小来滚动-->
<SizeBasedTriggeringPolicy size="20 MB"/>
</Policies>
<!-- 默认为最多同一文件夹下7个文件开始覆盖-->
<DefaultRolloverStrategy max="1"/>
</RollingFile>
<!-- info日志 -->
<RollingFile name="InfoLogger" fileName="${FILE_PATH}/${FILE_NAME}-info.log" filePattern="${FILE_PATH}/info/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
<Filters>
<ThresholdFilter level="INFO"/>
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<!--interval属性用来指定多久滚动一次,默认是1 hour-->
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<!--根据文件大小来滚动-->
<SizeBasedTriggeringPolicy size="20 MB"/>
</Policies>
<!-- 默认为最多同一文件夹下7个文件开始覆盖-->
<DefaultRolloverStrategy max="3"/>
</RollingFile>
<!-- warn日志 -->
<RollingFile name="WarnLogger" fileName="${FILE_PATH}/${FILE_NAME}-warn.log" filePattern="${FILE_PATH}/warn/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
<Filters>
<ThresholdFilter level="WARN"/>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<!--interval属性用来指定多久滚动一次,默认是1 hour-->
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<!--根据文件大小来滚动-->
<SizeBasedTriggeringPolicy size="20 MB"/>
</Policies>
<!-- 默认为最多同一文件夹下7个文件开始覆盖-->
<DefaultRolloverStrategy max="5"/>
</RollingFile>
<!-- error日志 -->
<RollingFile name="ErrorLogger" fileName="${FILE_PATH}/${FILE_NAME}-error.log" filePattern="${FILE_PATH}/error/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
<Filters>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
<Policies>
<!--interval属性用来指定多久滚动一次,默认是1 hour-->
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<!--根据文件大小来滚动-->
<SizeBasedTriggeringPolicy size="20 MB"/>
</Policies>
<!-- 默认为最多同一文件夹下7个文件开始覆盖-->
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.mybatis" level="debug"/>
<Logger name="com.java" level="debug"/>
<Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
<Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
<Logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
<Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
<Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
<Logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
<Logger name="springfox.documentation.swagger2" level="off"/>
<Logger name="io.swagger.models.parameters" level="off"/>
<!-- includeLocation 打印行号,如果这里不设置,就算%L 也不会打印行号 -->
<Root level="${OUTPUT_LOG_LEVEL}" includeLocation="true">
<appender-ref ref="Async"/>
<appender-ref ref="DebugLogger"/>
<appender-ref ref="InfoLogger"/>
<appender-ref ref="WarnLogger"/>
<appender-ref ref="ErrorLogger"/>
</Root>
</Loggers>
</configuration>
spring-boot项目木人文件名为 log4j2-spring.xml
转载或分享请加上原地址!!!