spring boot 配置log4j2
阿新 • • 發佈:2018-12-15
spring boot 1.4以上不支援log4j 可以使用log4j2
pom.xml 引入log4j2 先排除spring boot預設的logback日誌
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!-- 移除嵌入式tomcat外掛 --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> <!-- 去掉Spring boot預設 logback日誌配置 --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <!-- 引入log4j2依賴 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>1.4.2.RELEASE</version> </dependency>
其餘程式碼可以不用看,只看logging和log4j2主要的
在src/main/resource下新建log4j2.xml 要使用log4j2.properties 需要高版本才行
application.yml新增一下內容
logging.config:
classpath: log4j2.xml
log4j2.xml內容:
<?xml version="1.0" encoding="UTF-8"?> <!--日誌級別以及優先順序排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--Configuration後面的status,這個用於設定log4j2自身內部的資訊輸出,可以不設定,當設定成trace時,你會看到log4j2內部各種詳細輸出--> <!--monitorInterval:Log4j能夠自動檢測修改配置 檔案和重新配置本身,設定間隔秒數--> <Configuration status="WARN" monitorInterval="30"> <!--全域性屬性--> <Properties> <Property name="LOG_FILE_PATH">D:/apache-tomcat-8.5.33/logs</Property> <!-- linux日誌存放路徑 <Property name="LOG_FILE_PATH">/usr/logs</Property> --> <Property name="PATTERN_FORMAT">%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n</Property> </Properties> <Appenders> <!--輸出到控制檯--> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="${PATTERN_FORMAT}"/> </Console> <!--輸出到檔案 用來定義超過指定大小自動刪除舊的建立新的的Appender.--> <RollingFile name="RollingInfoFile" fileName="${LOG_FILE_PATH}/info.log" filePattern="${LOG_FILE_PATH}/$${date:yyyyMM}/info-%d{yyyyMMdd}-%i.log.gz"> <!--控制檯只輸出level及以上級別的資訊(onMatch),其他的直接拒絕(onMismatch)--> <Filters> <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <PatternLayout> <pattern>${PATTERN_FORMAT}</pattern> </PatternLayout> <Policies> <!-- rollover on startup, daily and when the file reaches 10 MegaBytes --> <OnStartupTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100 MB"/> <TimeBasedTriggeringPolicy/> </Policies> </RollingFile> <!--輸出警告日誌到檔案--> <RollingFile name="RollingWarnFile" fileName="${LOG_FILE_PATH}/warn.log" filePattern="${LOG_FILE_PATH}/$${date:yyyyMM}/warn-%d{yyyyMMdd}-%i.log.gz"> <!--控制檯只輸出level及以上級別的資訊(onMatch),其他的直接拒絕(onMismatch)--> <Filters> <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/> <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <PatternLayout> <pattern>${PATTERN_FORMAT}</pattern> </PatternLayout> <Policies> <!-- rollover on startup, daily and when the file reaches 10 MegaBytes --> <OnStartupTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100 MB"/> <TimeBasedTriggeringPolicy/> </Policies> </RollingFile> <!--輸出錯誤日誌到檔案--> <RollingFile name="RollingErrorFile" fileName="${LOG_FILE_PATH}/error.log" filePattern="${LOG_FILE_PATH}/$${date:yyyyMM}/error-%d{yyyyMMdd}-%i.log.gz"> <!--控制檯只輸出level及以上級別的資訊(onMatch),其他的直接拒絕(onMismatch)--> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout> <pattern>${PATTERN_FORMAT}</pattern> </PatternLayout> <Policies> <!-- rollover on startup, daily and when the file reaches 10 MegaBytes --> <OnStartupTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100 MB"/> <TimeBasedTriggeringPolicy/> </Policies> </RollingFile> </Appenders> <Loggers> <!--過濾掉spring和mybatis的一些無用的DEBUG資訊--> <Logger name="org.springframework" level="INFO"/> <Logger name="org.mybatis" level="INFO"/> <!-- LOG "com.luis*" at TRACE level --> <Logger name="com.luis" level="INFO"/> <!-- LOG everything at INFO level --> <Root level="ALL"> <AppenderRef ref="Console"/> <AppenderRef ref="RollingInfoFile"/> <AppenderRef ref="RollingWarnFile"/> <AppenderRef ref="RollingErrorFile"/> </Root> </Loggers> </Configuration>
啟動看效果
201810資料夾目錄下檔案內容
至此,配置結束!感謝瀏覽