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
轉載或分享請加上原位址!!!