slf4j + logback
slf4j的介绍与使用
什么是slf4j
全称: Simple Logging Facade for Java (SLF4J)
(日志框架的门面模式,可以作为当下流程的日志框架的一些接口规范吧。) 一种抽象
当下的日志框架有 log4j, log4j2, logback, Java util logging 是这么这种
commons logging(这是apache的门面框架, 和 slf4j 是类似的,所以有了 commons logging 为什么还要出来 slf4j呢。。(因为对Commons Logging的接口不满意,有人就搞了SLF4J。因为对Log4j的性能不满意,有人就搞了Logback。——大概是这么个意思吧)
ok
emmm,
怎么用呢,
slf4j 与 logback的使用
先把 slf4j 的依赖引入进来
一个完整的pom如下:
<!-- 因为 logback已经集成了 slf4j了,所以这个引用是可以免掉的 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- 嗯,就是这一个依赖可以拿掉, 以上 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency>
- 呃,这儿要说明一下的是,logback-classic其实已经内置支持了 org.slf4j, 所以这儿的引用不用引入 org.slf4j 也是可以的
- 然后,这儿貌似还有版本的相关性,可以尝试,当logback版本写到 1.4.1 的时候,日志框架是不生效的,就会报错,如下
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
** 就这两个地方略略要说明一下**
其它的没什么了。
关于 logback.xml
当然这个也很重要,
这儿只先记录一个模板,做一下示例,琢磨一下。(貌似还比较多的参数,要琢磨一下)
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> <charset>utf-8</charset> </encoder> <file>log/output.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>log/output.log.%i</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>1MB</MaxFileSize> </triggeringPolicy> </appender> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root> </configuration>
slf4j 与 log4j2 的使用
嗯,这个在使用上差不太多
pom.xml 依赖一下
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.19.0</version> </dependency>
这个依赖也包括了 log4j + slf4j的了,所以一个包也就够了,
其它的大概同理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南