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

相关推荐
学习3人组6 分钟前
JVM GC长暂停问题排查
java
R_AirMan18 分钟前
深入浅出Redis:一文掌握Redis底层数据结构与实现原理
java·数据结构·数据库·redis
人生在勤,不索何获-白大侠36 分钟前
day17——Java集合进阶(Collections、Map)
java·开发语言
程序员小羊!1 小时前
Java教程:JavaWeb ---MySQL高级
java·开发语言·mysql
白仑色1 小时前
Spring Boot 多环境配置详解
java·spring boot·后端·微服务架构·配置管理
超级小忍1 小时前
在 Spring Boot 中优化长轮询(Long Polling)连接频繁建立销毁问题
java·spring boot·后端
David爱编程1 小时前
Java 中 Integer 为什么不是万能的 int 替代品?
java·后端
老马啸西风1 小时前
个人网站一键引入免费开关评论功能 giscus
java
Z_W_H_1 小时前
【springboot】IDEA手动创建SpringBoot简单工程(无插件)
java·spring boot·intellij-idea
HeXDev2 小时前
【SkyWalking】服务端部署与微服务无侵入接入实战指南
java·微服务·架构·skywalking·链路追踪·微服务治理