博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot开发案例之整合日志管理
阅读量:6261 次
发布时间:2019-06-22

本文共 4503 字,大约阅读时间需要 15 分钟。

有一种力量无人能抵挡,它永不言败生来倔强。有一种理想照亮了迷茫,在那写满荣耀的地方。

00

概述

参考文档:

这里顺便引用以下部分原文,当然看不明白也没关系,我们有有道翻译,如果翻译的不准确,后面会提供详细配置分享给大家。

Spring Boot uses Commons Logging for all internal logging, but leaves the underlying log implementation open. Default configurations are provided for Java Util Logging, Log4J2 and Logback. In each case loggers are pre-configured to use console output with optional file output also available.

By default, If you use the ‘Starters’, Logback will be used for logging. Appropriate Logback routing is also included to ensure that dependent libraries that use Java Util Logging, Commons Logging, Log4J or SLF4J will all work correctly.

使用

pom.xml相关配置就不跟大家在这里扯了,依赖自行添加。

Console output

配置日志的相关参数也只需要写在 application.properties或者application.yml中就可以了,当然,这仅仅是基础的配置。

#官方文档中有提到, SpringBoot 的 Logging 配置的级别有7个:TRACE , DEBUG , INFO , WARN , ERROR , FATAL , OFF#root日志以INFO级别输出logging.level.root=INFO#springframework.web日志以WARN级别输出logging.level.org.springframework.web=WARN#hibernate日志以ERROR级别输出logging.level.org.hibernate=ERROR

加入以上配置后,我们启动项目,就可以在控制台打印Log信息了。

但是,在生产环境中,日志往往要以文件形式存放到服务器,下面介绍一下spring-boot日志的文件输出方式。

File output

logging.file=spring_boot.loglogging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%nlogging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n

配置完成以后,我们再次启动项目,这时候会在根目录下生成一个spring_boot.log日志文件。

但是,经历过项目上线的小伙伴,其实这样配置远远达不到生产要求。比如,区分普通日志和错误日志,按照日期存储日志,配置单个日志文件最大容量,删除多少天之前的文件等等!下面与大家分享一款更高级的配置。

Custom log configuration

Depending on your logging system, the following files will be loaded:

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

spring-boot日志管理支持Logback,Log4j2以及Log4j,根据以上说明,我们可以定义文件命名。

下面我们使用Logback的指定配置文件实现更高级的日志配置。

logback-spring.xml:

spring-boot-log
log/spring-boot-log-info.log
log/spring-boot-log-info-%d{yyyy-MM-dd}.%i.log
128MB
30
true
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
utf-8
info
ACCEPT
DENY
log/spring-boot-log-error.log
log/spring-boot-log-error-%d{yyyy-MM-dd}.%i.log
2MB
180
true
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
utf-8
ERROR
ACCEPT
DENY
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n
utf-8
INFO

如果我们使用了 Logback 的指定配置文件的话,那么application.properties 中的配置可以取消了。

测试

配置完成后,我们做一个测试,为了测试方便把info和error日志容量maxFileSize都改为2MB。

然后启动程序:

/** * 创建者  https://blog.52itstyle.com * 创建时间    2017年7月24日 */@EnableAutoConfigurationpublic class Application  {    private static final Logger logger = LoggerFactory.getLogger(Application.class);        public static void main(String[] args) throws InterruptedException {        SpringApplication.run(Application.class, args);          while(true){            logger.info("普通日志");            logger.error("错误日志");          }    }}

执行一段时间,如果在项目路径下生成以下日志文件说明配置成功。

123

代码:

作者: 小柒

出处:

本文版权归作者和云栖社区所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(345849402@qq.com)咨询。

你可能感兴趣的文章
svn的安装与使用
查看>>
基于Linux下Iptables限制BT下载的研究
查看>>
Android对话框-中篇-之建立自己的对话框
查看>>
华为交换机VRP用户界面配置及Telnet登录实验
查看>>
作为一个程序员我最大的遗憾
查看>>
《SolidWorks 2012中文版从入门到精通》一6.5 综合实例——斜齿圆柱齿轮
查看>>
storm集群的监控
查看>>
RHCE 6.0学习笔记-2 RHEL 6 使用光盘配置本地YUM源
查看>>
Mongodb定期备份
查看>>
Confluence 6 数据库设置
查看>>
刨根问底-struts-怎么加载配置的相应的信息
查看>>
解决mysql数据库大小写敏感问题
查看>>
jsp页面组成
查看>>
LCS记录
查看>>
C++开源跨平台类库集
查看>>
everything搜索工具小技巧
查看>>
一个 Sql语句优化的问题- STATISTICS 统计信息
查看>>
你不知道的KVO的内部实现
查看>>
转】MyEclipse10安装Log4E插件
查看>>
windows server2012r2 安装NET Framework 3.5
查看>>