首页 > 代码库 > slf4j

slf4j

这个日志工具允许任意数量的日志系统的实现。你可以使用 log4j、java.util.logging 或者其他日志系统。这个的精彩之处在于如果你在以后的开发处理中将 java.util.logging 改为 log4j,你完全不需要修改你的源代码。
选择合适的 jar 包

SLF4J 使用静态绑定。这意味着每个支持的日志框架都有自己的一个 jar 文件。你可以通过选择调用了你静态选择的日志框架的 jar 文件使用你喜爱的日志框架。以下是使用特定日志框架所需 jar 包的列表:

 

日志框架 需要的 jar 包
Log4J 1.2.x slf4j-api.jar, slf4j-log4j12.jar**
Log4J 1.3.x slf4j-api.jar, slf4j-log4j13.jar
java.util.logging slf4j-api.jar, slf4j-jdk14.jar**
Commons Logging slf4j-api.jar, slf4j-jcl.jar



        有几件事要记住:

  • slf4j-api.jar 是任何实现 jar 包里都必须的
  • 重要 你不可以把多个实现 jar 包放在 class path (比如 slf4j-log4j12.jar 和 slf4j-jdk14.jar 一起);这样可能会导致你的应用出现意想不到的行为。
  • slf4j-api.jar 和 slf4j-.jar 的版本应该一致。

        配置正确之后,你就可以继续去配置你具体选择的日志框架了 (比如,修改 log4j.properties)。
        覆盖 Jakarta Commons Logging
        SLF4J 也提供了一种办法在不修改源代码的情况下将使用 Jakarta Commons Logging 的应用转换为使用 SLF4J。只需要将 commons-loggong jar 文件从 class path 中移除,然后添加 jcl104-over-slf4j.jar 到 class path。
        log4j 例子
        本示例我们将使用 log4j 日志系统。创建一个项目,然后讲以下代码片段放进一个叫做 log4j.properties 的文件:

  1. # Set root logger level to DEBUG and its only appender to A1.  
  2. log4j.rootLogger=DEBUG, A1  
  3.   
  4. # A1 is set to be a ConsoleAppender.  
  5. log4j.appender.A1=org.apache.log4j.ConsoleAppender  
  6.   
  7. # A1 uses PatternLayout.  
  8. log4j.appender.A1.layout=org.apache.log4j.PatternLayout  
  9. log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c{1} %x - %m%n  


        这个文件将被放在我们项目的 src 目录。如果你使用的是 IDE,在你测试你的代码的时候你需要将此配置文件放在 JVM 的 classpath 下。