解读: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中的使用方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Linux命令行大全

Linux命令行大全

绍茨 (William E.Shotts) / 郭光伟、郝记生 / 人民邮电出版社 / 2013-3-1 / 69.00元

《Linux命令行大全》主要介绍Linux命令行的使用,循序渐进,深入浅出,引导读者全面掌握命令行的使用方法。 《Linux命令行大全》分为四部分。第一部分开始了对命令行基本语言的学习之旅,包括命令结构、文件系统的导引、命令行的编辑以及关于命令的帮助系统和使用手册。第二部分主要讲述配置文件的编辑,用于计算机操作的命令行控制。第三部分讲述了从命令行开始执行的常规任务。类UNIX操作系统,比如L......一起来看看 《Linux命令行大全》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具