Java
数据库
开源项目
电子书
合作推广
首页
Java
slf4j+logback实现不同环境日志配置和日志级别的设置及日志的开关
原创
分类:
Java
作者:
Java老牛
发布日期:
2022-10-11T22:46:15
不管大公司还是小公司都会有日志混乱的问题,当生产报错时开发人员排查问题,打开日志文件实时查看日志输出,但是由于不规范日志打印的很快,很难发现错误的日志。所以本次分享日志配置知识,由于代码过多所以这次给出代码库,欢迎下载学习。 gitee地址:https://gitee.com/javalaoniu/java-example/tree/master/demo-logback ### 日志打印类 ```java import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @Slf4j public class DemoLogbackApplication { public static void main(String[] args) { SpringApplication.run(DemoLogbackApplication.class, args); log.debug("debug..."); log.info("info..."); log.warn("warn..."); log.error("error..."); } } ``` 打印效果 ![](https://blog-1258868106.cos.ap-guangzhou.myqcloud.com/ocpx-1665712655559-1665712654926.png) ### 不同环境日志 只要配置下面属性即可对应使用相应的日志配置 开发环境: spring.profiles.active=dev 测试环境: spring.profiles.active=test 生产环境: spring.profiles.active=prod ### 日志级别设置例子 关闭根日志 logging.level.root = off 打印某个包的日志,日志级别为debug logging.level.javalaoniu.gitee.io.demo.logback = debug 关闭org.apache包的日志 logging.level.org.apache = off ### 动态设置日志环境 在项目启动时,传递环境参数,让日志自动使用相应的日志配置去打印日志(或记录到文件中) java -jar javalaoniu.gitee.io.demo.logback.DemoLogbackApplication --spring.profiles.active=dev ### 日志文件配置 #### logback-spring.xml ```xml
dadi
${log.colorPattern}
${log.path}/info.%d{yyyy-MM-dd}.log
${log.maxHistory}
${log.pattern}
INFO
ACCEPT
DENY
${log.maxSize}
${log.path}/error.%d{yyyy-MM-dd}.log
${log.pattern}
ERROR
ACCEPT
DENY
${log.maxSize}
``` #### application.properties ```properties logging.level.root = off logging.level.javalaoniu.gitee.io.demo.logback = debug ``` ### 日志规则 - 日志文件命名为logback-spring.xml,这样可以读取application.properties中的配置; - logback-spring.xml文件和application.properties中同时设置,则application.properties中的配置覆盖logback-spring.xml中的配置; - application.properties中logging.level.root的级别设置不影响其他包的设置,如logging.level.root=info,包设置logging.level.demo.log=warn,则demo.log包的日志级别为warn - 日志级别由低到高,ALL < TRACE < `DEBUG < INFO < WARN < ERROR` < FATAL < OFF
目录