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

相关推荐
怒放吧德德1 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆3 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌5 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊7 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang7 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Ray Liang8 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解8 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing12 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean13 小时前
Jackson View Extension Spring Boot Starter
java·后端
Seven9714 小时前
剑指offer-79、最⻓不含重复字符的⼦字符串
java