springboot整合log4j2


1,找到第一個啟動類,排除logging

1 <exclusions><!-- 去掉springboot默認配置 -->
2        <exclusion>
3             <groupId>org.springframework.boot</groupId>
4             <artifactId>spring-boot-starter-logging</artifactId>
5      </exclusion>
6  </exclusions>

 2,添加log4j2依賴

 <!-- log4j2. -->
 <dependency> <!-- 引入log4j2依賴 -->
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-log4j2</artifactId>
 </dependency>

3,添加log4j2-spring.xml

1 <?xml version="1.0" encoding="UTF-8"?>
  2 <!--Configuration后面的status,這個用於設置log4j2自身內部的信息輸出,可以不設置,當設置成trace時,你會看到log4j2內部各種詳細輸出 -->
  3 <!--monitorInterval:Log4j能夠自動檢測修改配置 文件和重新配置本身,設置間隔秒數 -->
  4 <configuration monitorInterval="5">
  5     <!--日志級別以及優先級排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
  6 
  7     <!--變量配置 -->
  8     <Properties>
  9         <!-- 格式化輸出:%date表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度 %msg:日志消息,%n是換行符 -->
 10         <!-- %logger{36} 表示 Logger 名字最長36個字符 -->
 11         <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %F:%L - %m%n" />
 12         <!-- 定義日志存儲的路徑,不要配置相對路徑 -->
 13         <property name="FILE_PATH" value="./logs" />
 14         <property name="FILE_NAME" value="cms" />
 15     </Properties>
 16 
 17     <appenders>
 18 
 19         <console name="Console" target="SYSTEM_OUT">
 20             <!--輸出日志的格式 -->
 21             <PatternLayout pattern="${LOG_PATTERN}" />
 22             <!--控制台只輸出level及其以上級別的信息(onMatch),其他的直接拒絕(onMismatch) -->
 23             <ThresholdFilter level="DEBUG" onMatch="ACCEPT"
 24                 onMismatch="DENY" />
 25         </console>
 26 
 27         <!--文件會打印出所有信息,這個log每次運行程序會自動清空,由append屬性決定,適合臨時測試用 -->
 28         <File name="Filelog" fileName="${FILE_PATH}/test.log" append="false">
 29             <PatternLayout pattern="${LOG_PATTERN}" />
 30         </File>
 31 
 32         <!-- 這個會打印出所有的info及以下級別的信息,每次大小超過size,則這size大小的日志會自動存入按年份-月份建立的文件夾下面並進行壓縮,作為存檔 -->
 33         <RollingFile name="RollingFileInfo"
 34             fileName="${FILE_PATH}/info.log"
 35             filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">
 36             <!--控制台只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch) -->
 37             <ThresholdFilter level="info" onMatch="ACCEPT"
 38                 onMismatch="DENY" />
 39             <PatternLayout pattern="${LOG_PATTERN}" />
 40             <Policies>
 41                 <!--interval屬性用來指定多久滾動一次,默認是1 hour -->
 42                 <TimeBasedTriggeringPolicy interval="1" />
 43                 <SizeBasedTriggeringPolicy size="10MB" />
 44             </Policies>
 45             <!-- DefaultRolloverStrategy屬性如不設置,則默認為最多同一文件夾下7個文件開始覆蓋 -->
 46             <DefaultRolloverStrategy max="15" />
 47         </RollingFile>
 48 
 49         <!-- 這個會打印出所有的warn及以下級別的信息,每次大小超過size,則這size大小的日志會自動存入按年份-月份建立的文件夾下面並進行壓縮,作為存檔 -->
 50         <RollingFile name="RollingFileWarn"
 51             fileName="${FILE_PATH}/warn.log"
 52             filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">
 53             <!--控制台只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch) -->
 54             <ThresholdFilter level="warn" onMatch="ACCEPT"
 55                 onMismatch="DENY" />
 56             <PatternLayout pattern="${LOG_PATTERN}" />
 57             <Policies>
 58                 <!--interval屬性用來指定多久滾動一次,默認是1 hour -->
 59                 <TimeBasedTriggeringPolicy interval="1" />
 60                 <SizeBasedTriggeringPolicy size="10MB" />
 61             </Policies>
 62             <!-- DefaultRolloverStrategy屬性如不設置,則默認為最多同一文件夾下7個文件開始覆蓋 -->
 63             <DefaultRolloverStrategy max="15" />
 64         </RollingFile>
 65 
 66         <!-- 這個會打印出所有的error及以下級別的信息,每次大小超過size,則這size大小的日志會自動存入按年份-月份建立的文件夾下面並進行壓縮,作為存檔 -->
 67         <RollingFile name="RollingFileError"
 68             fileName="${FILE_PATH}/error.log"
 69             filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">
 70             <!--控制台只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch) -->
 71             <ThresholdFilter level="error" onMatch="ACCEPT"
 72                 onMismatch="DENY" />
 73             <PatternLayout pattern="${LOG_PATTERN}" />
 74             <Policies>
 75                 <!--interval屬性用來指定多久滾動一次,默認是1 hour -->
 76                 <TimeBasedTriggeringPolicy interval="1" />
 77                 <SizeBasedTriggeringPolicy size="10MB" />
 78             </Policies>
 79             <!-- DefaultRolloverStrategy屬性如不設置,則默認為最多同一文件夾下7個文件開始覆蓋 -->
 80             <DefaultRolloverStrategy max="15" />
 81         </RollingFile>
 82 
 83     </appenders>
 84 
 85     <!--Logger節點用來單獨指定日志的形式,比如要為指定包下的class指定不同的日志級別等。 -->
 86     <!--然后定義loggers,只有定義了logger並引入的appender,appender才會生效 -->
 87     <loggers>
 88 
 89         <!--過濾掉spring和mybatis的一些無用的DEBUG信息 -->
 90         <logger name="org.mybatis" level="info" additivity="false">
 91             <AppenderRef ref="Console" />
 92         </logger>
 93         <!--監控系統信息 -->
 94         <!--若是additivity設為false,則 子Logger 只會在自己的appender里輸出,而不會在 父Logger 的appender里輸出。 -->
 95         <Logger name="org.springframework" level="info"
 96             additivity="false">
 97             <AppenderRef ref="Console" />
 98         </Logger>
 99 
100         <root level="info">
101             <appender-ref ref="Console" />
102             <appender-ref ref="Filelog" />
103             <appender-ref ref="RollingFileInfo" />
104             <appender-ref ref="RollingFileWarn" />
105             <appender-ref ref="RollingFileError" />
106         </root>
107     </loggers>
108 </configuration>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM