SLF4J只是定义了日志操作的相关接口,而不是具体的日志实现方案,类似JDBC。JDBC是使用Java API访问数据库的接口规范,具体的实现由不同数据库厂商提供。
SLF4J也是提供了操作日志的通用接口规范,只要你实现了这些规范接口,那么你就制作了一个符合SLF4J约定的日志框架。
而比较出名的开源日志框架有:java.util.logging, logback and log4j。
为什么不直接使用日志框架?
1.SLF4J提供的占位符等功能非常实用。
2.使用SLF4J可将解绑具体的日志框架,方便更好。
resourcelog4j.properties:
# Global logging configuration 开发时候建议使用 debug # 优先级由高到低:OFF>FATAL>ERROR>WARN>INFO>DEBUG>ALL log4j.rootLogger=debug, stdout # Console output... 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} [ %t:%r ] - [ %p ] %l %m%n
trait IceTra { protected final val log : Logger= LoggerFactory.getLogger(this.getClass()) }
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency>