【发布时间】:2022-01-02 21:17:57
【问题描述】:
使用下面的 logback.xml :
<Configuration status="INFO">
<Appenders>
<appender name="log1" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log1.log</file>
<append>true</append>
</appender>
<appender name="log2" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log2.log</file>
<append>true</append>
</appender>
<logger name="logger1" level="INFO" additivity="true">
<appender-ref ref="log1"/>
</logger>
<logger name="logger2" level="INFO" additivity="true">
<appender-ref ref="log2"/>
</logger>
</Appenders>
<root level="info">
<appender-ref ref="logger1"/>
<appender-ref ref="logger2"/>
</root>
</Configuration>
有依赖关系:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.32</version>
</dependency>
我正在尝试使用代码将消息记录到两个不同的文件:
Logger log1 = LoggerFactory.getLogger("logger1");
Logger log2 = LoggerFactory.getLogger("logger2");
log1.info("test1");
log2.info("test2");
但是文件 log1.log 和 log2.log 没有被创建。
这是控制台输出:
[as-akka.actor.default-dispatcher-3] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started
[main] INFO logger1 - test1
[main] INFO logger2 - test2
我不确定为什么要打印消息 [as-akka.actor.default-dispatcher-3] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started,可能是因为我在项目中使用了 Akka?
我是否正确设置了logback.xml 以启用记录到两个单独的日志文件?
我已查看问题Logback to log different messages to two files,但由于此问题的配置不同,因此未回答此问题。
【问题讨论】:
-
您的配置文件看起来像是 Log4j 和 Logback 语法的混合(即无效)。您是否尝试根据您引用的问题调整配置?此外,您使用
slf4j-simple绑定,它不使用 Logback。另一方面,logback-classic(包含 Logback 的 SLF4J 绑定)丢失了。 -
启用 logback debug 选项以查看 logback 是如何加载的
标签: java logging log4j akka logback