关键词:
目录
- Maven
- 添加 log4j2.xml
- 实战
- 小结
TL;DR
我们都知道,Spring Boot 的默认日志采用的是Logback。
今天,我们通过配置log4j2.xm来使用Log4j2日志记录。
Maven
首先,排除Spring Boot 默认的日志记录依赖logback,然后添加log4j2依赖。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions> <!-- 排除默认的logback-->
<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-log4j2</artifactId>
<version>$spring.boot.version</version>
</dependency>
</dependencies>
添加 log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
<Properties>
<Property name="logDir">/web/app/demo</Property>
<Property name="logFile">demo</Property>
</Properties>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="[%5p][%dyyyy-MM-dd HH:mm:ss,SSS] (%F:%L) %m%n" />
</Console>
<RollingFile name="RollingFile" fileName="$logDir/$logFile.log"
filePattern="$logDir/$$date:yyyy-MM/$logFile.%dyyyy-MM-dd-%i.log.gz">
<PatternLayout pattern="[%5p][%dyyyy-MM-dd HH:mm:ss,SSS] (%F:%L) %m%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="500 MB" />
</Policies>
<DefaultRolloverStrategy max="100">
<Delete basePath="$logDir" maxDepth="2">
<IfFileName glob="*.log.gz">
<IfLastModified age="7d">
<IfAny>
<!--keep <= 5GB,可自行修改-->
<IfAccumulatedFileSize exceeds="5 GB" />
<!--keep file count <=100 -->
<IfAccumulatedFileCount exceeds="100" />
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<logger name="org.springframework" level="WARN" />
<logger name="org.mongodb" level="WARN" />
<logger name="org.apache" level="WARN" />
<logger name="org.opensymphony" level="WARN" />
<logger name="org.mybatis" level="WARN" />
<logger name="com.alibaba.druid" level="WARN" />
<logger name="org.hibernate" level="WARN" />
<logger name="httpclient.wire.content" level="WARN" />
<logger name="httpclient.wire.header" level="WARN" />
<logger name="org.apache.commons.httpclient" level="WARN" />
<logger name="net.sf.ehcache" level="WARN" />
<logger name="org.elasticsearch" level="WARN" />
<logger name="io.netty" level="WARN" />
<Root level="DEBUG">
<AppenderRef ref="STDOUT" /> <!-- 如果用于生产环境,建议删除此项-->
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</configuration>
实战
- github代码地址:
package com.mickjoust.demo.springboot2_in_action.log4j2;
import lombok.extern.log4j.Log4j2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author mickjoust
**/
@Log4j2
@SpringBootApplication
public class AppStartLog4j2
public static void main(String[] args)
SpringApplication.run(AppStartLog4j2.class,args);
log.info("=== info level");
if (log.isDebugEnabled())
log.debug("=== debug level");
log.error("=== error level",new Throwable("test"));
log.warn("=== warn level");
输出结果:
小结
到此,我们通过简单的方法成功配置log4j2的日志记录。
欢迎留言。
(汇总)springboot实践折腾记&springboot2.x实践记
SpringBoot2.x实践记SpringBoot2.x实践记:Retry(annotion)SpringBoot2.x实践记:GsonSpringBoot2.x实践记:MailSpringBoot2.x实践记:H2DatabaseSpringBoot实践折腾记SpringBoot实践折腾记(1 查看详情
springboot2.x实践记:mail(代码片段)
...邮件发送HTML格式邮件实战测试小结TL;DR本文是实践如何在SpringBoot2中使用JavaMailSender发送邮件:发送简单邮件发送带附件邮件发送HTML格式邮件1.Maven依赖<dependency><groupId>org.springframework.boot</groupId&g 查看详情
springboot2.x实践记:mail(代码片段)
...邮件发送HTML格式邮件实战测试小结TL;DR本文是实践如何在SpringBoot2中使用JavaMailSender发送邮件:发送简单邮件发送带附件邮件发送HTML格式邮件1.Maven依赖<dependency><groupId>org.springframework.boot</groupId&g 查看详情
springboot2.x实践记:@springboottest(代码片段)
目录@SpringBootTest用@SpringBootTest集成测试用@SpringBootTest单元测试小结TL;DR在SpringBoot中做测试,默认使用@SpringBootTest注解,今天我们就来快速学习如何进行单元测试或集成测试。1.@SpringBootTest运行SprngBoot测试... 查看详情
springboot2.x实践记:@springboottest(代码片段)
目录@SpringBootTest用@SpringBootTest集成测试用@SpringBootTest单元测试小结TL;DR在SpringBoot中做测试,默认使用@SpringBootTest注解,今天我们就来快速学习如何进行单元测试或集成测试。1.@SpringBootTest运行SprngBoot测试... 查看详情
springboot2.x实践记:gson(代码片段)
目录1、Gson依赖2、Gson自动配置3、配置Gson为首选JSON映射器4、完全排除Jackson5、实战6、测试7、小结TL;DR本文,我们一起来实践使用Gson作为首选的json映射器,替换SpringBoot默认的Jackson。1.Gson依赖<dependencies><dependency>... 查看详情
springboot2.x实践记:gson(代码片段)
目录1、Gson依赖2、Gson自动配置3、配置Gson为首选JSON映射器4、完全排除Jackson5、实战6、测试7、小结TL;DR本文,我们一起来实践使用Gson作为首选的json映射器,替换SpringBoot默认的Jackson。1.Gson依赖<dependencies><dependency>... 查看详情
springboot2.x实践记:war包(代码片段)
目录声明为war类型修改Tomcat的作用域重写启动类小结TL;DR虽然SpringBoot默认使用,但某些场景下还是需要打成war包来运行在Tomcat中。下面的方法能快速的打包一个SpringBoot应用为war包。声明为war类型首先,在pom.xml文件中声明... 查看详情
springboot2.x实践记:war包(代码片段)
目录声明为war类型修改Tomcat的作用域重写启动类小结TL;DR虽然SpringBoot默认使用,但某些场景下还是需要打成war包来运行在Tomcat中。下面的方法能快速的打包一个SpringBoot应用为war包。声明为war类型首先,在pom.xml文件中声明... 查看详情
springboot2.x实践记:retry(annotion)(代码片段)
目录1、为什么要重试(retry)?2、spring-retry3、实战4、测试5、小结1.为什么需要重试(retry)?在我们的Web项目中,通常会遇到一些场景,导致业务获取结果异常,比如:网络中断网络超时... 查看详情
springboot2.x实践记:retry(annotion)(代码片段)
目录1、为什么要重试(retry)?2、spring-retry3、实战4、测试5、小结1.为什么需要重试(retry)?在我们的Web项目中,通常会遇到一些场景,导致业务获取结果异常,比如:网络中断网络超时... 查看详情
springboot2.x实践记:h2database(代码片段)
...H2Console小结TL;DR今天,我们一起来快速学习下如何在SpringBoot2下配置H2数据库。H2作为内存数据库,被广泛应用于本地单元测试,开发环境数据表操作,临时数据存储等。1.H2Database什么是H2Database?H2是用Java编写... 查看详情
springboot2.x实践记:h2database(代码片段)
...H2Console小结TL;DR今天,我们一起来快速学习下如何在SpringBoot2下配置H2数据库。H2作为内存数据库,被广泛应用于本地单元测试,开发环境数据表操作,临时数据存储等。1.H2Database什么是H2Database?H2是用Java编写... 查看详情
springboot2.x实践记:mail(代码片段)
...邮件发送HTML格式邮件实战测试小结TL;DR本文是实践如何在SpringBoot2中使用JavaMailSender发送邮件:发送简单邮件发送带附件邮件发送HTML格式邮件1.Maven依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring... 查看详情
springboot2.x实践记:gson(代码片段)
目录1、Gson依赖2、Gson自动配置3、配置Gson为首选JSON映射器4、完全排除Jackson5、实战6、测试7、小结TL;DR本文,我们一起来实践使用Gson作为首选的json映射器,替换SpringBoot默认的Jackson。1.Gson依赖<dependencies><dependency>... 查看详情
springboot2.x实践记:@springboottest(代码片段)
目录@SpringBootTest用@SpringBootTest集成测试用@SpringBootTest单元测试小结TL;DR在SpringBoot中做测试,默认使用@SpringBootTest注解,今天我们就来快速学习如何进行单元测试或集成测试。1.@SpringBootTest运行SprngBoot测试... 查看详情
springboot2.x实践记:h2database(代码片段)
...H2Console小结TL;DR今天,我们一起来快速学习下如何在SpringBoot2下配置H2数据库。H2作为内存数据库,被广泛应用于本地单元测试,开发环境数据表操作,临时数据存储等。1.H2Database什么是H2Database?H2是用Java编写... 查看详情
springboot2.x最佳实践《一》之springboot2.x初体验
SpringBoot2.X最佳实践前言本系列文章,从零基础接触 SpringBoot2.x新版本,基础入门使用,热部署,到整合各个主流框架Redis4.x,消息队列AciveMQ,RocketMQ等,搜索框架ElasticSearch5.6版本,到web-flux反应式编程,到Actuator监控应用信息... 查看详情