Spring Boot 日志配置Slf4j
SLF4J与Logback简介
Java日志框架众多,常用的有java.util.logging, log4j, logback,commons-logging等。
SLF4J (Simple Logging Facade For Java),它是一个针对于各类Java日志框架的统一Facade抽象。SLF4J定义了统一的日志抽象接口,而真正的日志实现则是在运行时决定。
LogBack是由log4j的创始人开发的新一代日志框架,用于替代log4j。它效率更高、能够适应诸多的运行环境。LogBack的架构设计足够通用,可适用于不同的环境。目前LogBack分为三个模:lobback-core,logback-classic和logback-access。core模块是其它两个模块的基础,classic是core的扩展,是log4j巨大改进的版本。
LogBack-classic本身实现了SL4J的API,因此可以很容易的在logback与其它日志系统之间转换,例如log4j、JDK1.4中的java.util.logging(JUL)。
第三个模块access,它集成了Servlet容器,提供了通过HTTP访问日志的功能,若了解access可访问文档: http://logback.qos.ch/access.html。
LogBack的日志级别有trace、debug、info、warn、error,级别排序为: TRACE < DEBUG < INFO < WARN < ERROR。关于日志级别详细信息,可参考官方文档: http://logback.qos.ch/manual/architecture.html。
默认配置 Logback
默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。
日志输出内容元素具体如下:
-
时间日期:精确到毫秒
-
日志级别:ERROR, WARN, INFO, DEBUG or TRACE
-
进程ID
-
分隔符:--- 标识实际日志的开始
-
线程名:方括号括起来(可能会截断控制台输出)
-
Logger名:通常使用源代码的类名
-
日志内容
Logback默认配置
-
<included>
-
<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/console-appender.xml" />
-
<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
-
<root level="INFO">
-
<appender-ref ref="CONSOLE" />
-
<appender-ref ref="FILE" />
-
</root>
-
</included>
使用logback.xml配置日志
Spring Boot 提供了一套日志系统,优先选择logback。日志服务一般都在ApplicationContext创建前就初始化了,所以日志配置,可以独立于Spring的配置。我们也可以通过系统属性和传统的Spring Boot外部配置文件,实现日志控制和管理。
根据不同的日志系统,SpringBoot按如下“约定规则”组织配置文件名加载日志配置文件:
日志框架 |
配置文件 |
Logback |
logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy |
Log4j |
log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml |
Log4j2 |
log4j2-spring.xml, log4j2.xml |
JDK (Java Util Logging) |
logging.properties |
Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项。
logback-base.xml 配置解析
-
<!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】,,, -->
-
<!-- appender是configuration的子节点,是负责写日志的组件。 -->
-
<!-- ConsoleAppender:把日志输出到控制台 -->
-
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-
<encoder>
-
<pattern>%d %p (%file:%line\)- %m%n</pattern>
-
<!-- 控制台也要使用UTF-8,不要使用GBK,否则会中文乱码 -->
-
<charset>UTF-8</charset>
-
</encoder>
-
</appender>
-
<!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
-
<!-- 以下的大概意思是:1.先按日期存日志,日期变了,将前一天的日志文件名重命名为XXX%日期%索引,新的日志仍然是sys.log -->
-
<!-- 2.如果日期没有发生变化,但是当前日志的文件大小超过1KB时,对当前日志进行分割 重命名-->
-
<appender name="syslog"
-
class="ch.qos.logback.core.rolling.RollingFileAppender">
-
<File>log/sys.log</File>
-
<!-- rollingPolicy:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 -->
-
<!-- TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动 -->
-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-
<!-- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -->
-
<!-- 文件名:log/sys.2017-12-05.0.log -->
-
<fileNamePattern>log/sys.%d.%i.log</fileNamePattern>
-
<!-- 每产生一个日志文件,该日志文件的保存期限为30天 -->
-
<maxHistory>30</maxHistory>
-
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-
<!-- maxFileSize:这是活动文件的大小,默认值是10MB,本篇设置为1KB,只是为了演示 -->
-
<maxFileSize>1KB</maxFileSize>
-
</timeBasedFileNamingAndTriggeringPolicy>
-
</rollingPolicy>
-
<encoder>
-
<!-- pattern节点,用来设置日志的输入格式 -->
-
<pattern>
-
%d %p (%file:%line\)- %m%n
-
</pattern>
-
<!-- 记录日志的编码 -->
-
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
-
</encoder>
-
</appender>
-
<!-- 控制台输出日志级别 -->
-
<root level="info">
-
<appender-ref ref="STDOUT" />
-
</root>
-
<!-- 指定项目中某个包,当有日志操作行为时的日志记录级别 -->
-
<!-- com.appley为根包,也就是只要是发生在这个根包下面的所有日志操作行为的权限都是DEBUG -->
-
<!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
-
<logger name="com.appleyk" level="DEBUG">
-
<appender-ref ref="syslog" />
-
</logger>
logback-spring.xml解析
-
-
<!--
-
~ Copyright (C) 2018 Baidu, Inc. All Rights Reserved.
-
-->
-
<configuration debug="true">
-
-
<include resource="logback-base.xml"/>
-
-
</configuration>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhfcjf
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01