Java日志框架-slf4j

2023-05-16

什么是slf4j?

slf4j(simple logging facecade for java )充当各种日志框架(例如java.util.logging,logback,log4j)的简单外观或抽象,允许最终用户在部署时插入所需要的日志框架。--译自官网。

为什么使用slf4j?

假设你的项目已经使用log4j,而且你包含一个名为A的库,这个库还依赖另外一个日志记录库logback的,那么你还需要包含它们。你再需要引入的一个名为B的库,这个库依赖日志记录库java.util.logging,你再把java.util.logging库引入你的项目,以此下去成了灾难。那么该怎么办呢?

如果你引入的库都是使用的slf4j,那么你就不需要再维护另外的logback和java.util.logging。

那如果当你的项目被调用的时候,调用方还需维护log4j,这无疑给调用方又增加了维护成本。

在你的开源库或者私有库中使用SLF4J,可以使它独立于任何的日志实现,这就意味着不需要管理多个库和多个日志文件。

项目中如何使用?

比如项目使用log4j:

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.30</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
        

注意:maven项目引入slf4j-log4j12会自动引入log4j.jar,无需再手动引入。

log4j.properties(仅做简单示例,引入项目请根据需要修改)

log4j.rootLogger=debug, ServerDailyRollingFile, stdout
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=logs/notify-subscription.log
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
log4j.appender.ServerDailyRollingFile.Append=true
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%c] %m%n

tips:slf4j1.8.0及以上(需要jdk1.8)版本不同,另做介绍。目前稳定的版本为1.7.30

项目使用logback:

注释掉slf4j-log4j12.jar,引入logback

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

 如果没有配置文件,logback会默认创建一个BasicConfigurator默认配置,将DEBUG级别及以上输出到console。

其他日志框架参考上面图片!!!。

本文完。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java日志框架-slf4j 的相关文章

随机推荐