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收到后,重新打印。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除