嘿,很久不见,你还好吗?git
我通常都是为你们带来项目上比较实用的东西,此次咱们来试试项目开发中对日志的处理,但愿对你有所帮助。github
一、为何要用日志?spring
你是否由于项目出现问题,查找日志文件定位错误花费N多时间,为此苦不堪言?app
二、Spring Boot 默认集成Logback。日志输出内容元素具体以下:框架
三、日志级别从低到高分为:运维
TRACE < DEBUG < INFO < WARN < ERROR < FATAL
四、根据不一样的日志系统,你能够按以下规则组织配置文件名,就能被正确加载:学习
Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml Log4j2:log4j2-spring.xml, log4j2.xml JDK (Java Util Logging):logging.properties测试
Spring Boot官方推荐优先使用带有 -spring
的文件名做为你的日志配置(如使用 logback-spring.xml
,而不是logback.xml), 命名为logback-spring.xml的日志配置文件,spring boot能够为它添加一些spring boot特有的配置项。.net
理论知识很重要!!! 虽然说实践出真知,可是没有理论作支持,实践只能是盲目的瞎摸,因此,在学好理论的前提下,结合实践,就能更好的为咱们服务。线程
之前在写项目的时候,用的是Log4j,那时候就感受他很强大,日志滚动啊,日志保存期限啊,设置最大存储量,异常发送邮件,等等功能。 总之,log很强大,他能帮助咱们解决不少不少的问题。
日志功能如此强大,那咱们怎么在项目中如何配置,又该如何使用呢?
先申明: 我这里是用Spring Boot搭建的项目,版本是2.x, 有可能你用的是Struts2+Spring+SpringMVC,等等之类的框架搭建。 我想说的是,推荐使用Spring Boot,你也能够将你的SS*项目改为Spring Boot。 若是你有好的建议也能够push给我,咱们一块儿交流,学习。
一、咱们先看项目目录:
二、在 application.yml
中须要这样配置如下内容:
spring: profiles: active: dev logback: appName: examplelog fileType: out
三、在 -dev.yml
, -test.yml
, -prod.yml
中须要添加如下配置:
logback: logDir: log/dev logging: level: com.fengwenyi.log: debug com.fengwenyi.log.service: error
四、咱们来看一下 logback-spring.xml
写法:
请参见源码
五、他有什么功能呢?
下面咱们详细说明一下:
他会根据你的配置生成对应的目录,来存放相应的日志文档,方便咱们查询。好比,开发时,咱们看dev
,测试人员看test
,上线运行,运维人员看 prod
,这样的好处是,咱们不只能够方便查询错误定位,也能够设置不一样的输出级别。像酱紫
是否是很清晰? 另外,他外按日期,天天一个文档,是否是很贴心? 保存多久由你定。 是否是快要感动哭了? 那就 star
一下吧,谢谢咯。
仍是简单说一下配置问题吧:
第一步,你要将 logback-spring.xml
,放到跟我相同的目录,内容,能够复制过去,也能够适当修改。
第二步,application.yml
logback: appName: examplelog # 日志文件前缀 fileType: out # 日志后缀名
第三步,application-dev.yml,-test.yml,-prod.yml
logback: logDir: log/dev # 日志目录 logging: level: # 日志级别配置,格式:(包名: 级别) com.fengwenyi.log: debug com.fengwenyi.log.service: error
[1] SpringBoot进阶教程 | 第二篇:日志组件logback实现日志分级打印
[3] 本节源码