slf4j + java.util.logging:如何配置?

时间:2011-04-15 19:05:20

标签: java logging slf4j

我正在尝试使用slf4j + java.util.logging。我知道如何通过logger = LoggerFactory.getLogger(...)logger.warn('...')或其他方式设置Java源代码。

但是在slf4j中设置配置的文档在哪里?我很困惑...我有log4j手册,熟悉日志适配器的基础知识,但是我我只是不确定如何使用slf4j + java.util.logging。

即:

  • 我需要指定哪个.properties文件和/或JVM -D命令行参数指向我的配置文件?

  • 哪里是java.util.logging配置文件的文档?

  • 使用slf4j会导致我的配置文件发生任何变化吗? (即我必须以不同方式声明的内容,而不是直接使用java.util.logging或log4j)

6 个答案:

答案 0 :(得分:13)

请参阅this tutorial on jul

  

java -Djava.util.logging.config.file = myLoggingConfigFilePath

但我建议去Logback

答案 1 :(得分:11)

slf4j层中没有配置。它只是一个API,后端必须为(或多或少)提供实现。

要使用java.util.logging作为slf4j后端,必须从类路径上的slf4j发行版中获取slf4j-jdk14-mumle.jar,并执行javadoc中列出的魔术来启用它。如果不是,您将遇到运行时错误,指出没有slf4j实现处于活动状态。

答案 2 :(得分:2)

您没有配置SLF4J - 您需要绑定和配置提供程序。我使用专为SLF4J构建的Logback。你也可以使用log4j。请参阅手册中的相关条目:http://www.slf4j.org/manual.html#binding

答案 3 :(得分:2)

我已经将Java日志记录用于相同的目的并进行了回溯。实际上,使用SLF4J配置回溯无关。只需将logback.xml放入带有logback配置的jar的根目录,并将logback-XX.jar放在classpath上。

<configuration>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="warn">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

这是用于登录到控制台的配置,但是logback手册有更多示例。

答案 4 :(得分:2)

基本上,你只需要在你的类路径上有slf4j-api.1.7.7.jar和slf4j-jdk14.1.7.7.jar。然后为您的应用程序创建logging.properties文件并设置系统属性 -Djava.util.logging.config.file = {path_to_logging.properties}

检查this tutorial,其中给出了如何使用不同的日志框架(如java logger,log4j,logback等)配置slf4j的示例。

答案 5 :(得分:-2)

有时您似乎可以像这样编辑文件

tomcat-directory/webapps/your_app_name/WEB-INF/classes/log4j.properties

(标准log4j配置文件)