springboot项目中配置self4j

Posted wumingxiaozi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot项目中配置self4j相关的知识,希望对你有一定的参考价值。

首先,声明一下,springboot项目中默认情况下已经集成了self4J + LogBack.

slf4j作为一个接口定义,底层可以有很多实现框架,同时也可以支持别的日志实现或者框架打到sfl4j上。它的实现是基于不同的桥接包。slf4j作为接口定义,下面有很多种实现。实现原理是获取ILoggerFactory时执行初始化,初始化过程绑定实现对象:load出所有实现StaticLoggerBinder的类,然后获取他的单例,后面执行getLogger的时候都是调用这个单例类的方法获取对应有具体实现日志功能的Logger对象。如果有多个实现,之后绑定其中的一个。这种情况需要排除掉不需要的日志实现类。

在resource根目录下创建logback.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

<!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN" value="%dateHH:mm:ss.SSS [%thread] %-5level %logger36 - %msg%n" />
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="LOG_FILE_PATH" value="E:/logs/demo.%dyyyy-MM-dd.%i.log" />

<!-- 控制台输出日志 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 按照上面配置的LOG_PATTERN来打印日志 -->
<pattern>$LOG_PATTERN</pattern>
</encoder>
</appender>

<!--每天生成一个日志文件,保存30天的日志文件。rollingFile是用来切分文件的 -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>$LOG_FILE_PATH</fileNamePattern>
<!-- keep 15 days‘ worth of history -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 日志文件的最大大小 -->
<maxFileSize>20MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>

<encoder>
<pattern>$LOG_PATTERN</pattern>
</encoder>
</appender>
<!-- project default level项目输出的日志级别 -->
<logger name="com.example.demo" level="DEBUG" />

<!-- 日志输出级别 常用的日志级别按照从高到低依次为:ERROR、WARN、INFO、DEBUG。 -->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" /><!--对应appender name="FILE"。 -->
</root>
</configuration>

日志输出级别

slf4j的日志级别分为五种(从高到低),只会输出比当前设置等级高的日志信息
error、warn、info、debug、trane
常用的是这是三个。
        info  一般处理业务逻辑的时候使用,就跟 system.err打印一样,用于说明此处是干什么的。slf4j使用的时候是可以动态的传参的,使用占位符 。后边一次加参数,会挨个对应进去。
        debug: 一般放于程序的某个关键点的地方,用于打印一个变量值或者一个方法返回的信息之类的信息
        error: 用户程序报错,必须解决的时候使用此级别打印日志。
不常用的有:
        warn:警告,不会影响程序的运行,但是值得注意。
        trane:  一般不会使用,在日志里边也不会打印出来,好像是很低的一个日志级别。









以上是关于springboot项目中配置self4j的主要内容,如果未能解决你的问题,请参考以下文章

教大家进行 Springboot 中项目的属性配置(详细)

springBoot项目打jar包后,修改配置文件中的配置项

springBoot项目打jar包后,修改配置文件中的配置项

SpringBoot项目属性配置

SpringBoot项目实现配置实时刷新功能

springboot系列SpringBoot 单元测试配置访问配置项目打包发布加载和读取多个配置文件