什么是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(使用前将#替换为@)