内容简介:有个任务停留在任务列表中很久了:本文主要对官方文档原文地址:
有个任务停留在任务列表中很久了: 使用Appenders 完成 loger4j 的日志推送
,始终没有成功实现。追其原因,仍然是官方的文档没有看来。在Spring-boot的项目中看到log4j,就想当然的认为Spring-boot使用的是log4j,然后不假思索的去google。最终导致的就是:功能没有实现,而且还浪费了很多不必要的时间,最后:还是老老实实的回来阅读 spring-boot
的官方文档。
本文主要对官方文档 Logging
部分进行解读。
原文地址: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html ,如果你使用的是不是最新版本,那么应该使用 https://docs.spring.io/spring-boot/docs/版本号/reference/htmlsingle/#boot-features-logging 如: https://docs.spring.io/spring-boot/docs/1.5.3.RELEASE/reference/htmlsingle/#boot-features-logging
76 日志
在web开中,我们仅需要依赖于 spring-boot-starter-web
便自动启用了日志系统 Logback
。
如果仅仅是想改变日志的等,则可以直接使用 logging.level
前缀在 application.properties
中进行设置,比如:
logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR
除了控制日志的等级,还可以使用 logging.file
来定义日志输入到的文件位置。
如果我们先想配置更多选项,则可以在 classpath
(resourse)中定义 logback.xml
。
76.1 配置Logback
找到 logback.xml
或 logback-spring.xml
,复制以下基本内容:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml"/> <logger name="org.springframework.web" level="DEBUG"/> </configuration>
并使用 idea
的 ctrl+o
来打开spring-boot jar中的 base.xml
,我们会看到配置信息包含一些特殊的字符,解读如下:
-
${PID}
当前的进程ID -
${LOG_FILE}
如果设置了logging.file
,则使用logging.file
做为日志输入文件。 -
${LOG_PATH}
同上.指定日志输出路径。 -
${LOG_EXCEPTION_CONVERSION_WORD}
..
76.1.1 配置:将日志仅写入文件
如果我们想禁用控制台的日志输出,然后把日志写入某个日志文件的话。那么需要新建 logback-spring.xml
,并引入 file-appender.xml
,比如:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>
然后:在 application.properties
定义 logging.file
来指定日志文件位置.
例:
logging.file=myapplication.log
打开 org/springframework/boot/logging/logback/file-appender.xml
内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!-- File appender logback configuration provided for import, equivalent to the programmatic initialization performed by Boot --> <included> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <file>${LOG_FILE}</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_FILE}.%i</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> </included>
注意:这里面有个 <appender name="FILE"
,指定了 appender名称为
FILE ,对应
logback-spring.xml`的以下语句:
<root level="INFO"> <!--日志等级--> <appender-ref ref="FILE" /> <!--指定appender为FILE,则前面我们刚刚找到的name值--> </root>
总结
有了以上内容,我们知道了如下知识点:
-
spring-boot
默认使用的是Logback
而非log4j
。 -
我们可以单独建立
logback-spring.xml
来细化Logback
的配置。 -
在
Logback
中,是可以指定使用不同的appender
来定义日志的输出的。 -
是否可以自定义
appender
来达到将日志输出到我们的日志服务器,从而达到系统监控的目的呢?
以上所述就是小编给大家介绍的《解读:spring-boot logging。记一次Logback在spring-boot中的使用方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Node.js实战
[美] Mike Cantelon、[美] TJ Holowaychuk、[美] Nathan Rajlich / 吴海星 / 人民邮电出版社 / 2014-5 / 69.00元
服务器端JavaScript?没错。Node.js是一个JavaScript服务器,支持可伸缩的高性能Web应用。借助异步I/O,这个服务器可以同时做很多事情,能满足聊天、游戏和实时统计等应用的需求。并且既然是JavaScript,那你就可以全栈使用一种语言。 本书向读者展示了如何构建产品级应用,对关键概念的介绍清晰明了,贴近实际的例子,涵盖从安装到部署的各个环节,是一部讲解与实践并重的优秀......一起来看看 《Node.js实战》 这本书的介绍吧!