菜单

Spring Boot 自定义日志详解

2019年9月26日 - 金沙编程资讯

Spring Boot 日志实战

在配备文件 application.properties 增添以下配置。

# 日志级别logging.level.root=DEBUG# 输出到日志文件logging.file=d:/logs/javastack.log# 控制框架中的日志级别logging.level.org.springframework=INFOlogging.level.sun=WARN

Application 运行类中增添以下测量试验代码。

private static final org.apache.commons.logging.Log logger1 = org.apache.commons.logging            .LogFactory            .getLog(SpringBootBestPracticeApplication.class);private static final org.slf4j.Logger logger2 = org.slf4j.LoggerFactory        .getLogger(SpringBootBestPracticeApplication.class);private static final java.util.logging.Logger logger3 = java.util.logging.Logger        .getLogger("SpringBootBestPracticeApplication");        @Beanpublic CommandLineRunner loggerLineRunner() {    return  -> {        logger1.error("commons logging error...");        logger1.info("commons logging info...");        logger2.info("slf4j info...");        logger2.info("java util logging info...");        logger1.debug("commons logging debug...");    };}       

日记输出如下。

2018-05-24 17:16:21.645 ERROR 3132 --- [           main] c.j.s.SpringBootBestPracticeApplication  : commons logging error...2018-05-24 17:16:21.645  INFO 3132 --- [           main] c.j.s.SpringBootBestPracticeApplication  : commons logging info...2018-05-24 17:16:21.645  INFO 3132 --- [           main] c.j.s.SpringBootBestPracticeApplication  : slf4j info...2018-05-24 17:16:21.645  INFO 3132 --- [           main] c.j.s.SpringBootBestPracticeApplication  : java util logging info...2018-05-24 17:16:21.645 DEBUG 3132 --- [           main] c.j.s.SpringBootBestPracticeApplication  : commons logging debug...

前后相继中选用了二种不一致的日志门面测验,和暗中认可的 Logback
框架专门的工作都不行例行,日志也正常输出到钦赐文件中了。

Spring Boot
私下认可提供配置的花样极度轻易,只适合轻易的日志应用,纵然说日志输出格式能够自定义,但日志文件如何按天滚动等其余更复杂的政策却不可能配置,只可以通过自定义援引日志文件的花样。

本节内容听大人说 Spring Boot 2.0.

你所需具有的基础

更加多请在Java技术栈微教徒人号后台回复关键字:boot。

Spring Boot 日志综合介绍

Spring Boot 内部代码应用的是 commons-logging
来记录日志的,然则底层日志达成框架是能够任性替换的。Spring Boot为
Java Util Logging, Log4J2, 和 Logback 日志框架提供了私下认可配置。

Spring Boot帮助的日记框架暗中认可配置如下。

# LOGGINGlogging.config= # Location of the logging configuration file. For instance, `classpath:logback.xml` for Logback.logging.exception-conversion-word=%wEx # Conversion word used when logging exceptions.logging.file= # Log file name (for instance, `myapp.log`). Names can be an exact location or relative to the current directory.logging.file.max-history=0 # Maximum of archive log files to keep. Only supported with the default logback setup.logging.file.max-size=10MB # Maximum log file size. Only supported with the default logback setup.logging.level.*= # Log levels severity mapping. For instance, `logging.level.org.springframework=DEBUG`.logging.path= # Location of the log file. For instance, `/var/log`.logging.pattern.console= # Appender pattern for output to the console. Supported only with the default Logback setup.logging.pattern.dateformat=yyyy-MM-dd HH:mm:ss.SSS # Appender pattern for log date format. Supported only with the default Logback setup.logging.pattern.file= # Appender pattern for output to a file. Supported only with the default Logback setup.logging.pattern.level=%5p # Appender pattern for log level. Supported only with the default Logback setup.logging.register-shutdown-hook=false # Register a shutdown hook for the logging system when it is initialized.

一旦不配备以上任何参数,日志暗许只会以 INFO
以上的等级打字与印刷在调控台,不会记录在日记文件中。

设若利用了别的 Starters,那 Spring Boot 默许会使用 Logback
日志框架记录日志,并为 Logback 提供了支持Java Util Logging,
Commons Logging, Log4J, SLF4J
适合的桥接器以便能从那么些日记门面中随心所欲切换。即项目中不管选用哪个日志门面,Logback都能健康办事。

如下图,从 spring-boot-starter-web 依赖树中看出含有了暗中认可日志框架
Logback 及别的的桥接器。

图片 1

Spring Boot 定制日志文件

简言之的日记配置无法满意实际项目须要,那能够通过援引定制日志文件的方式到达指标。Spring
Boot能依靠类路线下的类库和布署文件自动配置相应的日记框架。

日志框架 配置文件
Logback logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties

按对应类库在 classpath 下创制对应辅助的日志配置文件就行,恐怕经过配备
logging.config 指定。

既然私下认可是协理 Logback 的,那未来如若在能源根目录下开创三个
logback-spring.xml 文件就能够。xx-spring 这是 Spring Boot
推荐的命名格局,不然 Spring Boot
不可能完全调全日志初始化,因为暗许命名配置文件 logback.xml
加载较早不能够获得到 application.properties 中的配置消息。

看来这里,相信您对 Spring Boot
的日记应该有了一个周全的驾驭。怎么着行使布署文印日志和价值观项目一律,这里就不啰嗦了。

负有 Spring Boot 小说示例代码都在 Github 下边,我们能够 Star 关怀一下。

关切Java手艺栈,获取越来越多干货推送!

本文原创首发于微信公众号:Java技巧栈(id:javastack),关切大伙儿号在后台回复
“boot” 可获得越来越多,转发请原样保留本音讯。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图