解读:spring-boot logging。记一次Logback在spring-boot中的使用方法

栏目: Java · 发布时间: 5年前

内容简介:有个任务停留在任务列表中很久了:本文主要对官方文档原文地址:

有个任务停留在任务列表中很久了: 使用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.xmllogback-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>

并使用 ideactrl+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>

总结

有了以上内容,我们知道了如下知识点:

  1. spring-boot 默认使用的是 Logback 而非 log4j
  2. 我们可以单独建立 logback-spring.xml 来细化 Logback 的配置。
  3. Logback 中,是可以指定使用不同的 appender 来定义日志的输出的。
  4. 是否可以自定义 appender 来达到将日志输出到我们的日志服务器,从而达到系统监控的目的呢?

以上所述就是小编给大家介绍的《解读:spring-boot logging。记一次Logback在spring-boot中的使用方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning Apache Struts

Beginning Apache Struts

Arnold Doray / Apress / 2006-02-20 / USD 44.99

Beginning Apache Struts will provide you a working knowledge of Apache Struts 1.2. This book is ideal for you Java programmers who have some JSP familiarity, but little or no prior experience with Ser......一起来看看 《Beginning Apache Struts》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具