sl4j+log4j日志框架

发布于:2025-05-29 ⋅ 阅读:(18) ⋅ 点赞:(0)

sl4j+log4j日志框架

slf4j (Simple Loging Facade For Java) 即它仅仅是一个为 Java 程序提供日志输出的统一接口,并不是一个具体的日志实现方案,所以单独的 slf4j 是不能工作的,必须搭配其他具体的日志实现方案(例如:log4j,logback,JDK 自带的 java.util.logging.Logger等)。
slf4j 用作各种日志框架的简单外观或抽象,为各种日志框架提供了一个统一的接口,允许最终用户在部署时插入所需的日志框架。
sl4j 主要目标是使得应用程序能够在运行时动态地绑定到任何日志框架,而无需修改代码。slf4j 与具体的日志实现框架之间通过桥接器(binding)进行连接。要切换日志框架,只需替换类路径上的 slf4j 绑定。


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

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依赖:

<!-- 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

# 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


网站公告

今日签到

点亮在社区的每一天
去签到