Spring Boot 默认是使用logback作为日志框架,如果想使用log4j框架的话,需要做一些配置和修改。关于logback与log4j以及log4j2的接收请移步 日志 log4j logback log4j2 slf4j jdk-logging commons-logging 介绍。如果你看过上面这篇文档,这个集成就非常简单了。
- 屏蔽spring boot的默认日志框架与实现
在org.springframework.boot下增加例外,具体pom.xm配置如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
如上图所示,主要是增加了这一段
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
2、 增加使用log4j1的三个jar包
在pom.xml中增加引用
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
3、 增加log4j的日志配置文件
log4j.properties放置于resources下(只要放置在编译路径的根目录下就是,检查编译以后的class路径根目录是否有日志配置文件),我这里的配置比较多。
log4j.rootLogger=DEBUG,Console,InfoFile,ErrorFile,WarnFile
# Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}] %m%n
# InfoFile
log4j.appender.InfoFile=org.apache.log4j.RollingFileAppender
log4j.appender.InfoFile.File=logs/info.log
log4j.appender.InfoFile.MaxFileSize=10MB
log4j.appender.InfoFile.MaxBackupIndex=50
log4j.appender.InfoFile.Threshold=INFO
log4j.appender.InfoFile.layout=org.apache.log4j.PatternLayout
log4j.appender.InfoFile.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}] %c.%t(%F:%L)%m%n
# ErrorFile
log4j.appender.ErrorFile=org.apache.log4j.RollingFileAppender
log4j.appender.ErrorFile.File=logs/error.log
log4j.appender.ErrorFile.MaxFileSize=10MB
log4j.appender.ErrorFile.MaxBackupIndex=50
log4j.appender.ErrorFile.Threshold=ERROR
log4j.appender.ErrorFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ErrorFile.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}] %c.%t(%F:%L)%m%n
# WarnFile
log4j.appender.WarnFile=org.apache.log4j.RollingFileAppender
log4j.appender.WarnFile.File=logs/warn.log
log4j.appender.WarnFile.MaxFileSize=10MB
log4j.appender.WarnFile.MaxBackupIndex=50
log4j.appender.WarnFile.Threshold=WARN
log4j.appender.WarnFile.layout=org.apache.log4j.PatternLayout
log4j.appender.WarnFile.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}] %c.%t(%F:%L)%m%n
4、建立Contoller层方法
其实这里,不是必要的,大家可以在spring boot的启动类写个日志就够了。
@RestController
public class PiceaServletContoller {
private Logger logger = LoggerFactory.getLogger(PiceaServletContoller.class);
@RequestMapping("/task")
public String task(String name) throws Exception {
logger.info("info级别日志:" + name);
logger.debug("debug级别日志:" + name );
logger.error("error级别日志:" + name);
return "日志测试" + name;
}
}
5、程序运行结果
通过浏览器请求:http://127.0.0.1:2001/task?name=1
后台打印如下图所示:
骚年,努力吧,我看好你哟!
其它注意
本文章样例:
工程名:spring-boot-log4j
GitHub:https://github.com/zzyjb/SpringBootLearning
网友评论