我正在尝试使用slf4j + java.util.logging。我知道如何设置Java源代码,通过logger = LoggerFactory.getLogger(...)
和logger.warn('...'
)或其他方式做到这一点。
但是在slf4j中设置配置的文档在哪里?我很困惑…我有log4j手册,并且熟悉日志适配器的基本知识,但我只是不确定如何使用slf4j + java.util.logging。
即:
-
我需要指定哪个。properties文件和/或JVM
-D
命令行参数以指向我的配置文件? -
java.util.logging配置文件的文档在哪里?
-
使用slf4j会导致配置文件发生任何变化吗?(即我必须声明不同的东西,而不是直接使用java.util.logging或log4j)
参见本教程:
java -Djava.util.logging.config.file = myLoggingConfigFilePath
但是我推荐使用Logback
也可参阅官方的"Java日志概述"。
slf4j层中没有配置。它只是一个API,后端必须提供实现(或多或少)。
要使用java.util.logging作为slf4j后端,必须将slf4j发行版中的slf4j-jdk14- mule .jar放在类路径上,并执行javadoc中列出的魔法操作来启用它。如果没有,您将有一个运行时错误,说没有slf4j实现活动。
出于同样的目的,我放弃了Java日志记录,转而使用logback。实际上,使用SLF4J配置logback不需要做任何事情。只需将logback.xml放到具有logback配置的jar的根目录中,并将logback- xx .jar放到类路径中。
<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手册有更多的例子。
基本上,您只需要在类路径中放置slf4j-api.1.7.7.jar和slf4j-jdk14.1.7.7.jar。然后创建一个日志。属性文件,并设置系统属性-Djava.util.logging.config.file = {path_to_logging.properties}
查看本教程,其中给出了如何使用不同的日志框架(如Java logger、log4j、logback等)配置slf4j的示例。
您不需要配置SLF4J—您需要绑定并配置提供程序。我使用Logback,它是专门为SLF4J构建的。您还可以使用log4j。参见手册中的相关条目:http://www.slf4j.org/manual.html#binding
有时候你可以用这样的文件名编辑你的文件
tomcat-directory/webapps/your_app_name/WEB-INF/classes/log4j.properties
(标准log4j配置文件)。