首先,声明一下,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="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" /> <!-- 定义日志存储的路径,不要配置相对路径 --> <property name="LOG_FILE_PATH" value="E:/logs/demo.%d{yyyy-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: 一般不会使用,在日志里边也不会打印出来,好像是很低的一个日志级别。
原文地址:https://www.cnblogs.com/wumingxiaozi/p/11296131.html
时间: 2024-10-31 20:48:34