springboot中log的一些操作注意点版权声明
原创1 .配置日志输出到文件
输出到指定文件
logging:
file:/logs/application.log
输出到指定目录(将写入 spring.log 中)
logging:
path: /logs/
当同时进行时 logging.path 和 logging.file 时 logging.path 无效
2.优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL
以下内容将打印出来info及其上级日志(全局)
logging:
level:
root: info
会打印com.vss.service.impl包下warn和上面的原木
logging:
level:
com.vss.service.impl: warn、
3. 自定义日志配置
Spring Boot 官方推荐的优先使用 -spring 文件名用作您的日志配置(例如 logback-spring.xml ,而不是 logback.xml ),默认情况下名为 logback-spring.xml 的日志配置文件,并放置在 src/main/resources 下面(不是下面的文件夹,默认为resources下)
如果您想要完全控制日志配置,但不想使用它。 logback.xml 作为 Logback 配置的名称, application.yml 可以通过 logging.config 属性指定一个自定义名称:
logging.config=classpath:logging-config.xml
3.1根节点
- scan:设置此属性时
true如果配置文件更改,将使用缺省值重新加载true。 - scanPeriod:设置监控配置文件是否被修改的时间间隔。如果未指定时间单位,则默认单位为毫秒。什么时候
scan为true此属性生效。默认时间间隔为1分钟。 - debug:设置此属性时
true什么时候,就会打印出来。logback内部日志信息,实时查看。logback运行状态。缺省值为false。
3.2
root节点是指定最基本的日志输出级别所需的节点,只有一个level属性。
level:用于设置打印级别,不区分大小写:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,无法设置INHERITED或同义词NULL。
默认是DEBUG。
可以包含零个或多个元素来标识此appender将添加到此loger。
appender用于格式化日志输出节点,有两个属性name和class,class用于指定输出策略,通常使用的是控制台输出策略和文件输出策略。
3.3
<loger> 用于设置包或特定类的日志打印级别,并指定 <appender> 。 <loger> 仅有一个 name 属性,则为可选 level 和一个可选的 addtivity 属性。
name:用于指定主题。loger约束包或特定类。level:用于设置打印级别,不区分大小写:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特殊的价值。INHERITED或同义词NULL,代表执法上级的水平。如果未设置此属性,则当前loger上级的水平将被继承。addtivity:是否给上级loger传递打印信息。缺省值为true,true将此loger打印信息被传达给上级。;
第一点: loger 配置,未指定级别,无 appender
logback-spring.xml 增加 loger 配置如下:
<logger name="com.dudu.controller" /> 将控制 controller 打印了该包下所有类的日志,但没有设置打印级别,所以他继承了上级的日志级别。 “info” ;
没有设置 addtivity ,默认为true,将此 loger 打印信息被传达给上级。;
没有设置 appender ,此 loger 其本身不打印任何信息。
<root level="info"> 将 root 设置了打印级别 “info” ,使用名称指定 “console” 的 appender 。
当执行 com.dudu.controller.LearnController 类的 login 方法时, LearnController 在包com.dudu.controller,所以先执行。 <logger name="com.dudu.controller"/> ,级别为 “info” 及大于 “info” 将日志信息传递到 root ,本身不打印;
root 收到下级发送的信息后,移交给已配置的名为“console”的 appender 处理, “console” appender 将信息打印到控制台;
打印结果如下:
16:00:17.407 logback [http-nio-8080-exec-8] INFO com.dudu.controller.LearnController - 日志输出 info
16:00:17.408 logback [http-nio-8080-exec-8] WARN com.dudu.controller.LearnController - 日志输出 warn
16:00:17.408 logback [http-nio-8080-exec-8] ERROR com.dudu.controller.LearnController -
第二:拥有多个 loger 配置,指定级别,指定。 appender
logback-spring.xml 增加 loger 配置如下:
...
控制 com.dudu.controller.LearnController 类的日志打印,打印级别为“ WARN ”;
additivity 属性为 false ,表示此 loger 打印信息不再传达给上级。;
用名称“指定” console ”的 appender ;
现在是执行的时候了 com.dudu.controller.LearnController 类的login方法,则首先执行。 <logger name="com.dudu.controller.LearnController" level="WARN" additivity="false"> ,级别将为“ WARN “并且大于”WARN“日志信息被提供给这个 loger 指定的名称“ console ”的 appender 在控制台处理、录入日志,不再交给上级。 root 传递打印信息。
打印结果如下:
16:00:17.408 logback [http-nio-8080-exec-8] WARN com.dudu.controller.LearnController - 日志输出 warn
16:00:17.408 logback [http-nio-8080-exec-8] ERROR com.dudu.controller.LearnController - 日志输出 error
当然,如果你把 additivity="false" 改成 additivity="true" 如果是,则打印两次,因为打印信息是传输给上级的,logger它本身只打印一次,root收到后,重新打印。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



