你的位置:首页 > Java教程

[Java教程]SpringBoot 6.SpringBoot使用 Log4j2 实现日志输出

一、添加 Log4j2 的依赖

  <!-- 引入 log4j2 必须排除 logging -->  <dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-log4j2</artifactId>  </dependency>

  当我们引入 log4j2 的时候,需要排除掉 spring-boot-starter-web 中引入的 logging。

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

二、创建 log4j2.

<??><!-- 该--><!-- status="off",log4j2把自身事件记录到控制台的配置,off表示不记录,其余的记录有trace,debug,info,warn,error,fatal --><!-- monitorInterval表示检测更改配置的时间,单位是秒,最小间隔为5秒,0或负数表示不检测 --><configuration name="test-cfg" status="off" monitorInterval="0"> <!-- 常量引用 --> <properties>  <!-- <property name="LOG_HOME">/home/log</property> -->  <property name="LOG_HOME">D:/log</property>  <property name="FORMAT">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level >>> %logger{36} - %msg%n</property> </properties> <!-- appender用于接收各种日志 --> <appenders>  <!-- 常见的输出到console,常用于开发环境中,默认是system_err,还有一个system_out -->  <console name="console" target="system_out">   <!-- appender级别的日志过滤 -->   <!-- <thresholdFilter level="info" onMatch="accept" onMismatch="deny"/> -->   <patternLayout pattern="${FORMAT}" />  </console>  <!-- 常用于开发环境,把日志记录到文件中,默认追加 -->  <file name="file" fileName="${LOG_HOME}/test.log" append="false">   <patternLayout pattern="${FORMAT}" />  </file> </appenders> <!-- 接收appender --> <loggers>  <logger name="org.apache.http" level="WARN" />  <!-- Spring -->  <logger name="org.springframework" level="INFO" />  <!-- mybatis loggers -->  <logger name="com.ibatis" level="DEBUG" />  <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" />  <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" />  <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" />  <!-- sql loggers -->  <logger name="java.sql.Connection" level="DEBUG" additivity="true"/>  <logger name="java.sql.Statement" level="DEBUG" additivity="true" />  <logger name="java.sql.PreparedStatement" level="DEBUG" additivity="true"/>  <logger name="java.sql.ResultSet" level="DEBUG" additivity="true"/>  <!-- 对包进行更详细的配置 -->  <!-- additivity表示是否追加,防止重复,因为root已经接收过一次了 -->  <logger name="cn.com.baseos" level="DEBUG" additivity="false">   <appender-ref ref="console" />   <appender-ref ref="file" />  </logger>  <!-- root logger,一般用于放置所有的appender -->  <root level="DEBUG">   <appender-ref ref="console" />   <appender-ref ref="file" />  </root> </loggers></configuration>