【熵增教育】Jacob-你所遗漏的SpringBoot日志管理知识——熵增学院
Spring Boot对所有内部日志记录使用了Commons Logging,但是底层日志实现是开放的。可以为 Java Util日志、Log4J2和Logback。对于每种日志都预先配置为使用控制台输出和可选的文件输出。默认为Logback
日志配置
通过将相应的库添加到classpath可以激活各种日志系统,然后在classpath根目录下提供合适的配置文件可以进一步定制日志系统,配置文件也可以通过Spring Environment的logging.config属性指定。
以下文件会根据你选择的日志系统进行加载:
日志系统 | 定制配置 |
---|---|
Logback | logback-spring.xml ,logback-spring.groovy ,logback.xml 或logback.groovy |
Log4j | log4j.properties 或log4j.xml |
Log4j2 | log4j2-spring.xml 或log4j2.xml |
JDK (Java Util Logging) | logging.properties |
注 如果可能的话,建议你使用-spring
变种形式定义日志配置(例如,使用logback-spring.xml
而不是logback.xml
)。如果你使用标准的配置路径,Spring可能不能够完全控制日志初始化。
注 Java Util Logging从可执行jar运行时会导致一些已知的类加载问题,我们建议尽可能不使用它。
以下是从Spring Envrionment
转换为System properties的一些有助于定制的配置属性:
Spring Environment | System Property | Comments |
---|---|---|
logging.exception-conversion-word | LOG_EXCEPTION_CONVERSION_WORD | 记录异常使用的关键字 |
logging.file | LOG_FILE | 如果指定就会在默认的日志配置中使用 |
logging.path | LOG_PATH | 如果指定就会在默认的日志配置中使用 |
logging.pattern.console | CONSOLE_LOG_PATTERN | 日志输出到控制台(stdout)时使用的模式(只支持默认的logback设置) |
logging.pattern.file | FILE_LOG_PATTERN | 日志输出到文件时使用的模式(如果LOG_FILE启用,只支持默认的logback设置) |
logging.pattern.level | LOG_LEVEL_PATTERN | 用来渲染日志级别的格式(默认%5p ,只支持默认的logback设置) |
PID | PID | 当前的处理进程(process)ID(能够找到,且还没有用作OS环境变量) |
所有支持的日志系统在解析配置文件时都能获取系统属性的值,具体可以参考spring-boot.jar
中的默认配置。
log4j2配置
一份史诗级配置
/home/logs/log/dev \ \ \ \
</Appenders> <Loggers> <Root level="debug"> <AppenderRef ref="Console"/> <AppenderRef ref="debug"/> <AppenderRef ref="info"/> <AppenderRef ref="warn"/> <AppenderRef ref="error"/> </Root> </Loggers>
-
各个文件输出到不同级别的目录
-
设置最大保存时间为15天
-
每个文件最大50M
tomcat的日志
在properties文件添加如下配置:
server.tomcat.basedir=/home/logs/log-api/tomcat-logs server.tomcat.accesslog.enabled=true server.tomcat.accesslog.pattern=%t %a "%r" %s %D (%D ms) server.use-forward-headers=true
lombok的神组合
使用lombok的@Slf4j 注解,省去配置声明log的繁琐,提高开发效率。
idea的 grep console组合
Grep Console 自定义设置控制台输出颜色,这样控制台就能比较明显的看到警告或者错误的信息,方便查找问题
视频:https://space.bilibili.com/313762729/#/
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一文看懂 Redis5 搭建集群
1、简要说明 2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂度大大降低。关于集群的更新可以在 Redis5 的版本说明中看到,如下: The cluster manager was ported from Ruby (redis-trib.rb) to C code inside redis-cli. check `redis-cli --cluster help ` for more info. 可以查看Redis官网查看集群搭建方式,连接如下 https://redis.io/topics/cluster-tutorial 以下步骤是在一台 Linux 服务器上搭建有6个节点的 Redis集群。 2、创建集群步骤 1、创建目录 新建目录:/root/software/redis 2、下载源码并解压编译 wget http://download.redis.io/releases/redis-5.0.0.tar.gz tar xzf re...
- 下一篇
为什么你要使用这么强大的分布式消息中间件——kafka
为什么是kafka? 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存储数据库浪费,直接存储硬盘效率又低 这些场景都有一个共同点: 数据是由上游模块产生,上游模块,使用上游模块的数据计算、统计、分析,这个时候就可以使用消息系统,尤其是分布式消息系统! 知道了我们有必要在数据处理系统中使用一个消息系统,但是我们为什么一定要选kafka呢?现在的消息系统可不只有kafka。 话说阿里中间件团队和LinkedIn团队都做了一个Kafka、RabbitMQ、RocketMQ的三者对比。这边就不献丑了,实际结果可以参考以下两篇博文: 阿里测试:http://jm.taobao.org/2016/04/01/kafka-vs-rabbitmq-vs-rocketmq-message-send-performance/ LinkedIn测试:https://blog.csdn.net/SJF0115/article/details/7...
相关文章
文章评论
共有0条评论来说两句吧...