1. 程式人生 > 其它 >springboot(2.3.4)替換預設的logback為log4j2

springboot(2.3.4)替換預設的logback為log4j2

1. application.properties 配置logging.config=classpath:log4j2.xml,如果不配置預設讀取的是resources下的log4j2.xml

2.配置依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <
groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</
artifactId> </dependency>

3.配置log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 第一全域性引數資訊 -->
    <Properties>
        <property name="LOG_PATTERN"
                  value="%d{yyyy-MM-dd HH:mm:ss.SSS} -- %style{[%t]}{bright,magenta} %highlight{%-5level}{ERROR=Bright RED, WARN=Bright Yellow, INFO=Bright Green, DEBUG=Bright Cyan, TRACE=Bright White} %logger{36}.%M - %msg%n"
/> <!-- debug 日誌檔案位置及名稱,在rollFile的時候老檔案的生成規則 --> <property name="DEBUG_FILE_PATH_ING" value="../logs/app_debug.log"/> <property name="DEBUG_FILE_PATH_ED" value="../logs/app_debug-%d{yyyy-MM-dd}.%i.log"/> <!-- info 日誌檔案位置及名稱,在rollFile的時候老檔案的生成規則 --> <property name="INFO_FILE_PATH_ING" value="../logs/app_info.log"/> <property name="INFO_FILE_PATH_ED" value="../logs/app_info-%d{yyyy-MM-dd}.%i.log"/> <!-- error 日誌檔案位置及名稱,在rollFile的時候老檔案的生成規則 --> <property name="ERROR_FILE_PATH_ING" value="../logs/app_error.log"/> <property name="ERROR_FILE_PATH_ED" value="../logs/app_error-%d{yyyy-MM-dd}.%i.log"/> <!-- warn 日誌檔案位置及名稱,在rollFile的時候老檔案的生成規則 --> <property name="WARN_FILE_PATH_ING" value="../logs/warn_error.log"/> <property name="WARN_FILE_PATH_ED" value="../logs/warn_error-%d{yyyy-MM-dd}.%i.log"/> <!-- 日誌檔案最大檔案大小全域性配置,一天之內最大檔案產生數量全域性配置 --> <property name="MAX_FILE_SIZE" value="100MB"/> <property name="MAX_FILE_NUM" value="30"/> </Properties> <appenders> <!-- 控制檯輸出日誌資訊 --> <console name="Console_Log" target="SYSTEM_OUT"> <PatternLayout pattern="${LOG_PATTERN}"/> </console> <!-- debug日誌檔案輸出日誌資訊 --> <RollingFile name="Debug_File" fileName="${DEBUG_FILE_PATH_ING}" filePattern="${DEBUG_FILE_PATH_ED}"> <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="${MAX_FILE_SIZE}"/> <TimeBasedTriggeringPolicy/> </Policies> <DefaultRolloverStrategy max="${MAX_FILE_NUM}"/> </RollingFile> <!-- info日誌檔案輸出日誌資訊 --> <RollingFile name="Info_File" fileName="${INFO_FILE_PATH_ING}" filePattern="${INFO_FILE_PATH_ED}"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="${MAX_FILE_SIZE}"/> <TimeBasedTriggeringPolicy/> </Policies> <DefaultRolloverStrategy max="${MAX_FILE_NUM}"/> </RollingFile> <!-- warn日誌檔案輸出日誌資訊 --> <RollingFile name="Warn_File" fileName="${ERROR_FILE_PATH_ING}" filePattern="${ERROR_FILE_PATH_ED}"> <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="${MAX_FILE_SIZE}"/> <TimeBasedTriggeringPolicy/> </Policies> <DefaultRolloverStrategy max="${MAX_FILE_NUM}"/> </RollingFile> <!-- error日誌檔案輸出日誌資訊 --> <RollingFile name="Error_File" fileName="${ERROR_FILE_PATH_ING}" filePattern="${ERROR_FILE_PATH_ED}"> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="${MAX_FILE_SIZE}"/> <TimeBasedTriggeringPolicy/> </Policies> <DefaultRolloverStrategy max="${MAX_FILE_NUM}"/> </RollingFile> </appenders> <!--配置總的日誌監聽級別 --> <loggers> <!-- 業務程式碼輸出debug --> <Logger name="com.config" level="debug" additivity="true"> <!-- <AppenderRef ref="Debug_File"></AppenderRef> --> </Logger> <root level="INFO"> <appender-ref ref="Console_Log"/> <!-- <appender-ref ref="Debug_File"/> <appender-ref ref="Info_File"/> <appender-ref ref="Error_File"/> --> </root> </loggers> </configuration>