找回密码
 立即注册
首页 业界区 业界 SpringBoot整合Log4j2日志框架

SpringBoot整合Log4j2日志框架

院儿饯 2025-6-9 08:53:21
SpringBoot底层默认使用logback日志框架。
切换使用Log4j2日志框架。
pom.xml配置
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     spring-boot-starter-web</artifactId>
  4.        
  5.     <exclusions>
  6.         <exclusion>
  7.             spring-boot-starter-logging</artifactId>
  8.             <groupId>org.springframework.boot</groupId>
  9.         </exclusion>
  10.     </exclusions>
  11. </dependency>
  12. <dependency>
  13.     <groupId>org.springframework.boot</groupId>
  14.     spring-boot-starter-log4j2</artifactId>
  15. </dependency>
复制代码
log4j2-spring.xml

文件命名固定log4j2-spring.xml,让SpringBoot加载配置文件。
文件名为log4j2.xml,文件将绕过SpringBoot直接调用日志框架。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration status="debug" monitorInterval="180" packages="com.evan" disableAnsi="false" >
  3.    
  4.     <properties>
  5.         
  6.         <property name="LOG_HOME">./logs</property>
  7.         
  8.         
  9.         
  10.         
  11.         
  12.         <property name="PATTERN">%date{YYYY-MM-dd HH:mm:ss,SSS} %level [%thread][%file:%line] - %msg%n%throwable</property>
  13.     </properties>
  14.    
  15.         
  16.         <Console name="consoleAppender" target="SYSTEM_OUT">
  17.             
  18.             <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
  19.             
  20.             <PatternLayout
  21.                     pattern="%style{%d{ISO8601}}{bright,green} %highlight{%-5level} [%style{%t}{bright,blue}] %style{%C{}}{bright,yellow}: %msg%n%style{%throwable}{red}"
  22.                      noConsoleNoAnsi="false"/>
  23.         </Console>
  24.         
  25.         
  26.         <RollingFile name="allFileAppender"
  27.                      fileName="${LOG_HOME}/all.log"
  28.                      filePattern="${LOG_HOME}/$${date:yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.gz">
  29.             
  30.             <PatternLayout>
  31.                 <pattern>%d %p %C{} [%t] %m%n</pattern>
  32.             </PatternLayout>
  33.             <Policies>
  34.                
  35.                
  36.                
  37.                 <SizeBasedTriggeringPolicy size="100MB"/>
  38.                
  39.                 <TimeBasedTriggeringPolicy/>
  40.             </Policies>
  41.             
  42.             <DefaultRolloverStrategy max="100"/>
  43.         </RollingFile>
  44.         
  45.         <RollingFile name="debugFileAppender"
  46.                      fileName="${LOG_HOME}/debug.log"
  47.                      filePattern="${LOG_HOME}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
  48.             <Filters>
  49.                
  50.                 <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
  51.             </Filters>
  52.             
  53.             <PatternLayout>
  54.                 <pattern>%d %p %C{} [%t] %m%n</pattern>
  55.             </PatternLayout>
  56.             <Policies>
  57.                
  58.                
  59.                
  60.                 <SizeBasedTriggeringPolicy size="100MB"/>
  61.                
  62.                 <TimeBasedTriggeringPolicy/>
  63.             </Policies>
  64.             
  65.             <DefaultRolloverStrategy max="100"/>
  66.         </RollingFile>
  67.         
  68.         <RollingFile name="infoFileAppender"
  69.                      fileName="${LOG_HOME}/info.log"
  70.                      filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
  71.             <Filters>
  72.                
  73.                 <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
  74.             </Filters>
  75.             
  76.             <PatternLayout>
  77.                 <pattern>%d %p %C{} [%t] %m%n</pattern>
  78.             </PatternLayout>
  79.             <Policies>
  80.                
  81.                
  82.                
  83.                 <SizeBasedTriggeringPolicy size="100MB"/>
  84.                
  85.                 <TimeBasedTriggeringPolicy/>
  86.             </Policies>
  87.             
  88.             
  89.         </RollingFile>
  90.         
  91.         <RollingFile name="warnFileAppender"
  92.                      fileName="${LOG_HOME}/warn.log"
  93.                      filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
  94.             <Filters>
  95.                
  96.                 <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
  97.             </Filters>
  98.             
  99.             <PatternLayout>
  100.                 <pattern>%d %p %C{} [%t] %m%n</pattern>
  101.             </PatternLayout>
  102.             <Policies>
  103.                
  104.                
  105.                
  106.                 <SizeBasedTriggeringPolicy size="100 MB"/>
  107.                
  108.                 <TimeBasedTriggeringPolicy/>
  109.             </Policies>
  110.             
  111.             <DefaultRolloverStrategy max="100"/>
  112.         </RollingFile>
  113.         
  114.         <RollingFile name="errorFileAppender"
  115.                      fileName="${LOG_HOME}/error.log"
  116.                      filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
  117.             
  118.             <PatternLayout>
  119.                 <pattern>%d %p %C{} [%t] %m%n</pattern>
  120.             </PatternLayout>
  121.             <Policies>
  122.                
  123.                
  124.                
  125.                 <SizeBasedTriggeringPolicy size="100 MB"/>
  126.                
  127.                 <TimeBasedTriggeringPolicy/>
  128.             </Policies>
  129.             
  130.             <DefaultRolloverStrategy max="100"/>
  131.         </RollingFile>
  132.         
  133.         <RollingFile name="errorJsonAppender"
  134.                      fileName="${LOG_HOME}/error-json.log"
  135.                      filePattern="${LOG_HOME}/error-json-%d{yyyy-MM-dd}-%i.log.gz">
  136.             <JSONLayout compact="true" eventEol="true" locationInfo="true"/>
  137.             <Policies>
  138.                 <SizeBasedTriggeringPolicy size="100 MB"/>
  139.                 <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
  140.             </Policies>
  141.         </RollingFile>
  142.     </Appenders>
  143.     <Loggers>
  144.         
  145.         <Root level="debug">
  146.             
  147.             
  148.             
  149.             
  150.             
  151.             
  152.             
  153.         </Root>
  154.         <Logger name="springfox" level="INFO"/>
  155.         
  156.         <Logger name="org.springframework" level="info"/>
  157.         
  158.         <Logger name="druid.sql.Statement" level="info"/>
  159.         
  160.         <Logger name="com.mybatis" level="warn"/>
  161.         <Logger name="org.hibernate" level="warn"/>
  162.         <Logger name="com.zaxxer.hikari" level="info"/>
  163.         <Logger name="org.quartz" level="info"/>
  164.         <Logger name="com.ym.learn" level="debug"/>
  165.     </Loggers>
  166. </Configuration>
复制代码
控制台日志输出信息

1.png

日志文件生成

2.png

说明:日志文件生成在当前项目下

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册