spring boot支持的日志框架有,logback,Log4j2,Log4j和Java Util  Logging,默认使用的是logback日志框架,框架集成要求使用log4j2,记录下框架配置log4j2的几个步骤

SpringBoot版本
1 2 3 4 5 6
   | <parent> 	<groupId>org.springframework.boot</groupId> 	<artifactId>spring-boot-starter-parent</artifactId> 	<version>2.0.3.RELEASE</version> 	<relativePath />  </parent>
   | 
 
排除自带的日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
   |  <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-data-jpa</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-test</artifactId> 	<scope>test</scope> 	<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-aop</artifactId> 	<exclusions> 		<exclusion> 			<groupId>org.springframework.boot</groupId> 			<artifactId>spring-boot-starter-logging</artifactId> 		</exclusion> 	</exclusions> </dependency>
 
  | 
 
添加log4j2依赖
1 2 3 4 5 6 7 8 9 10
   |  <dependency> 	<groupId>org.springframework.boot</groupId> 	<artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
  <dependency> 	<groupId>com.fasterxml.jackson.dataformat</groupId> 	<artifactId>jackson-dataformat-yaml</artifactId> </dependency>
 
  | 
 
添加配置文件
xml的配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
   | <?xml version="1.0" encoding="UTF-8"?> <configuration status="OFF"> 	<appenders> 		<Console name="Console" target="SYSTEM_OUT"> 			 			<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" /> 			<PatternLayout pattern="[%d{HH:mm:ss.SSS}] %-5level %class{36} %L %M - %msg%xEx%n" /> 		</Console>                             <RollingFile name="RollingFileDebug" fileName="./logs/debug.log"                      filePattern="logs/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">             <Filters>                 <ThresholdFilter level="DEBUG"/>                 <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>             </Filters>             <PatternLayout                     pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>             <Policies>                 <SizeBasedTriggeringPolicy size="500 MB"/>                 <TimeBasedTriggeringPolicy/>             </Policies>         </RollingFile>                    <RollingFile name="RollingFileInfo" fileName="./logs/info.log"                      filePattern="logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">             <Filters>                                  <ThresholdFilter level="INFO"/>                 <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>             </Filters>             <PatternLayout                     pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>             <Policies>                 <SizeBasedTriggeringPolicy size="500 MB"/>                 <TimeBasedTriggeringPolicy/>             </Policies>         </RollingFile>                    <RollingFile name="RollingFileWarn" fileName="./logs/warn.log"                      filePattern="logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">             <Filters>                 <ThresholdFilter level="WARN"/>                 <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>             </Filters>             <PatternLayout                     pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>             <Policies>                 <SizeBasedTriggeringPolicy size="500 MB"/>                 <TimeBasedTriggeringPolicy/>             </Policies>         </RollingFile>                    <RollingFile name="RollingFileError" fileName="./logs/error.log"                      filePattern="logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">             <ThresholdFilter level="ERROR"/>             <PatternLayout                     pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>             <Policies>                 <SizeBasedTriggeringPolicy size="500 MB"/>                 <TimeBasedTriggeringPolicy/>             </Policies>         </RollingFile>                    <RollingFile name="druidSqlRollingFile" fileName="./logs/druid-sql.log"                      filePattern="logs/$${date:yyyy-MM}/api-%d{yyyy-MM-dd}-%i.log.gz">             <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %L %M - %msg%xEx%n"/>             <Policies>                 <SizeBasedTriggeringPolicy size="500 MB"/>                 <TimeBasedTriggeringPolicy/>             </Policies>         </RollingFile>     </appenders>       <loggers>         <root level="DEBUG">             <appender-ref ref="Console"/>             <appender-ref ref="RollingFileInfo"/>             <appender-ref ref="RollingFileWarn"/>             <appender-ref ref="RollingFileError"/>             <appender-ref ref="RollingFileDebug"/>         </root>                    <logger name="druid.sql.Statement" level="debug" additivity="false">             <appender-ref ref="druidSqlRollingFile"/>         </logger>         <logger name="druid.sql.Statement" level="debug" additivity="false">             <appender-ref ref="druidSqlRollingFile"/>         </logger>                    <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.crsh.plugin" level="warn" />         <logger name="org.crsh.ssh" 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.autoconfigure.CrshAutoConfiguration" level="warn"/>         <logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>         <logger name="org.thymeleaf" level="warn"/>     </loggers> </configuration>
   | 
 
yaml的配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
   |  Configuration:   status: warn   monitorInterval: 30   Properties:      Property:                      - name: log.level.console         value: info       - name: log.path         value: "d:/log"       - name: project.name         value: wii       - name: log.pattern         value: "%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n"   Appenders:     Console:         name: CONSOLE       target: SYSTEM_OUT       PatternLayout:         pattern: ${log.pattern}
      RollingFile:       - name: ROLLING_FILE         fileName: ${log.path}/${project.name}.log         filePattern: "${log.path}/historyRunLog/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"         PatternLayout:           pattern: ${log.pattern}         Filters:
            ThresholdFilter:             - level: error               onMatch: DENY               onMismatch: NEUTRAL             - level: info               onMatch: ACCEPT               onMismatch: DENY         Policies:           TimeBasedTriggeringPolicy:               modulate: true             interval: 1         DefaultRolloverStrategy:                max: 100
        - name: PLATFORM_ROLLING_FILE         ignoreExceptions: false         fileName: ${log.path}/platform/${project.name}_platform.log         filePattern: "${log.path}/platform/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"         PatternLayout:           pattern: ${log.pattern}         Policies:           TimeBasedTriggeringPolicy:               modulate: true             interval: 1         DefaultRolloverStrategy:                max: 100
        - name: BUSSINESS_ROLLING_FILE         ignoreExceptions: false         fileName: ${log.path}/bussiness/${project.name}_bussiness.log         filePattern: "${log.path}/bussiness/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"         PatternLayout:           pattern: ${log.pattern}         Policies:           TimeBasedTriggeringPolicy:               modulate: true             interval: 1         DefaultRolloverStrategy:                max: 100
        - name: EXCEPTION_ROLLING_FILE         ignoreExceptions: false         fileName: ${log.path}/exception/${project.name}_exception.log         filePattern: "${log.path}/exception/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"         ThresholdFilter:           level: error           onMatch: ACCEPT           onMismatch: DENY         PatternLayout:           pattern: ${log.pattern}         Policies:           TimeBasedTriggeringPolicy:               modulate: true             interval: 1         DefaultRolloverStrategy:                max: 100
        - name: DB_ROLLING_FILE         ignoreExceptions: false         fileName: ${log.path}/db/${project.name}_db.log         filePattern: "${log.path}/db/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"         ThresholdFilter:            level: error           onMatch: ACCEPT           onMismatch: DENY         PatternLayout:           pattern: ${log.pattern}         Policies:           TimeBasedTriggeringPolicy:               modulate: true             interval: 1         DefaultRolloverStrategy:                max: 100   Loggers:     Root:       level: info       AppenderRef:         - ref: CONSOLE         - ref: ROLLING_FILE         - ref: EXCEPTION_ROLLING_FILE     Logger:       - name: platform         level: info         additivity: false         AppenderRef:           - ref: CONSOLE           - ref: PLATFORM_ROLLING_FILE       - name: bussiness         level: info         additivity: false         AppenderRef:           - ref: BUSSINESS_ROLLING_FILE       - name: exception         level: debug         additivity: true         AppenderRef:           - ref: EXCEPTION_ROLLING_FILE       - name: db         level: info         additivity: false         AppenderRef:           - ref: DB_ROLLING_FILE
 
 
 
 
 
 
 
 
 
  | 
 
启用配置
使用xml配置添加
1 2
   | logging:     config: classpath:log4j2.xml
   | 
 
使用yml配置添加
1 2
   | logging:     config: classpath:log4j2.yml
   | 
 
资料
      
     
    
   
  
    
    
        
            
				| 个人微信公众号 | 技术交流QQ群 | 
            
            
				
					  | 
					  |