我正在开发一个使用slf4j api记录的应用程序:
SELECT "Continent"
FROM network.countries
...
(上面的代码发布用于显示正在使用的类和包,但非常标准的东西。)
我们使用如下配置的logback:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
private static final Logger LOG = LoggerFactory.getLogger(FreemarkerEmailPreviewGenerator.class);
...
LOG.error("Error generating email preview", e);
我们的一些代码使用了使用java.util.logging记录的第三方库 - 特别是freemarker。从以下控制台日志条目中可以看出,logback和j.u.l都是登录到控制台,但它们没有使用相同的配置(使用我们的模式的logback条目,j.u.l不使用)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{HH:mm:ss.SSS}] [%thread] [%-5level %logger{26} - %msg]%n
</pattern>
</encoder>
</appender>
<root>
<level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
是否有可能使j.u.l日志记录使用logback配置,以便我们为整个应用程序提供一个一致的日志记录配置?
答案 0 :(得分:7)
您的申请需要以下罐子:
申请 - &gt; Freemarker - &gt; java.util.logging - &gt; SLF4J Api: jul-to-slf4j.jar
申请 - &gt; SLF4J API: slf4j-api.jar
SLF4J API - &gt; logback: logback-classic.jar和logback-core.jar
由于您的应用程序已经包含slf4j-api.jar和logback-classic.jar,您可能只需要添加jul-to-slf4j.jar
如果你使用maven:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.22</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.8</version>
</dependency>
logback classic将传递添加logback-core和slf4j-api