sl4j+log4j日志框架

sl4j+log4j日志框架

slf4j (Simple Loging Facade For Java) 即它仅仅是一个为 Java 程序提供日志输出的统一接口,并不是一个具体的日志实现方案,所以单独的 slf4j 是不能工作的,必须搭配其他具体的日志实现方案(例如:log4j,logback,JDK 自带的 java.util.logging.Logger等)。

slf4j 用作各种日志框架的简单外观或抽象,为各种日志框架提供了一个统一的接口,允许最终用户在部署时插入所需的日志框架。

sl4j 主要目标是使得应用程序能够在运行时动态地绑定到任何日志框架,而无需修改代码。slf4j 与具体的日志实现框架之间通过桥接器(binding)进行连接。要切换日志框架,只需替换类路径上的 slf4j 绑定。

sl4j+log4j的日志框架配置和使用日志打印:

java 复制代码
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {
    private static final Logger logger = LoggerFactory.getLogger(Main.class);
    
    public static void main(String[] args) {
        logger.debug("Hello world: debug!");
        logger.info("Hello world: info!");
        logger.warn("Hello world: warn!");
        logger.error("Hello world: error!");
    }
}

pom依赖:

XML 复制代码
<!-- logger: Log4j+slf4j -->
  <!-- slf4j核心jar包 -->
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
  </dependency>
  <!-- slf4j与log4j的桥接包,为log4j和slf4j建立桥接依赖 -->
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
  </dependency>
  <!-- log4j核心jar包 -->
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
  </dependency>

log4j配置文件:

vi log4j.properties

bash 复制代码
# set log level: INFO, Outputs: console, file
log4j.rootLogger=INFO, console, file
#log4j.rootLogger=INFO, file

# set different log level for packages(设置对指定的packages输出不同级别的日志)
#log4j.logger.cn.zysheep.mapper=debug, console, file
#log4j.additivity.cn.zysheep.mapper=false

# console output settings
log4j.appender.console=org.apache.log4j.ConsoleAppender
# console patternLayout
log4j.appender.console.layout=org.apache.log4j.PatternLayout
# console log output format: 日期 级别 [类名] - 消息换行符
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %p [%c:%L] - %m%n

# file output settings: one logfile / day
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
# file output logDir: logs/syslog.log
log4j.appender.file.File=logs/syslog.log
# file output patternLayout
log4j.appender.file.layout=org.apache.log4j.PatternLayout
# file max size
log4j.appender.A3.MaxFileSize=500MB
# file max number
log4j.appender.A3.MaxBackupIndex=30
# file log output format: 日期 级别 [类名] - 消息换行符
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %p [%c:%L] - %m%n

另外:

log4j2是log4j的后续版本,如果用 sl4j+log4j2 的话:

slf4j核心jar包:slf4j-api.jar

slf4j与log4j2的桥接包:log4j-slf4j-impl-2.8.2.jar

log4j2核心jar包:log4j-api.jar 和 log4j-core.jar

相关推荐
YoungP3 小时前
【Effective Java 条目二】-- 当构造器参数较多时考虑使用生成器
java
野生技术架构师3 小时前
牛客网Java 高频面试题总结(2025最新版)
java·开发语言·面试
纪莫3 小时前
技术面:SpringBoot(springboot的类加载和传统的双亲委派有什么区别、如何按顺序实例化Bean)
java·spring·java面试⑧股
kyle~4 小时前
CPU调度---协程
java·linux·服务器·数据库·c++20
会飞的小蛮猪4 小时前
Skywalking运维之路(Skywalking服务搭建)
java·运维·监控
L.EscaRC4 小时前
Redisson在Spring Boot中的高并发应用解析
java·spring boot·后端
他们叫我技术总监4 小时前
从开发者视角深度评测:ModelEngine 与 AI 开发平台的技术博弈
java·人工智能·dubbo·智能体·modelengine
李辉20034 小时前
Python逻辑运算符
java·网络·python
摇滚侠4 小时前
Spring Boot3零基础教程,StreamAPI 介绍,笔记98
java·spring boot·笔记
扫地僧过江南4 小时前
Kanass零基础学习,如何进行任务管理
java·禅道·项目管理工具