使用 logback 记录到两个不同的日志文件
Using logback to log to two different log files
使用下面 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 但它没有回答这个问题,因为这个问题的配置不同。
这个 result from Google 有你所有问题的答案...
我希望,您知道,当您登录文件时,<Configuration>
和 <configuration>
不是一回事,而且控制台输出在某种程度上是不相关的。 ..
这 logback.xml 将日志记录分成两个单独的文件:
<?xml version="1.0"?>
<configuration>
<appender name="logger1appender" class="ch.qos.logback.core.FileAppender">
<file>logfile1.log</file>
<append>false</append>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="logger2appender" class="ch.qos.logback.core.FileAppender">
<file>logfile2.log</file>
<append>false</append>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<property name="pattern" value="%date{HH:mm:ss.SSS} %-5p %logger{36}
%X{akkaSource} [%file:%line] - %m%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} %-5p %logger{36} %X{akkaSource} [%file:%line] - %m%n</pattern>
</encoder>
</appender>
<logger name="logger1name" level="INFO" additivity="false">
<appender-ref ref="logger1appender"/>
</logger>
<logger name="logger2name" level="INFO" additivity="false">
<appender-ref ref="logger2appender"/>
</logger>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
具有依赖关系:
<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>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.10</version>
</dependency>
使用代码:
private static final Logger log1 = LoggerFactory.getLogger("logger1name");
private static final Logger log2 = LoggerFactory.getLogger("logger2name");
使用下面 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 但它没有回答这个问题,因为这个问题的配置不同。
这个 result from Google 有你所有问题的答案...
我希望,您知道,当您登录文件时,<Configuration>
和 <configuration>
不是一回事,而且控制台输出在某种程度上是不相关的。 ..
这 logback.xml 将日志记录分成两个单独的文件:
<?xml version="1.0"?>
<configuration>
<appender name="logger1appender" class="ch.qos.logback.core.FileAppender">
<file>logfile1.log</file>
<append>false</append>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="logger2appender" class="ch.qos.logback.core.FileAppender">
<file>logfile2.log</file>
<append>false</append>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<property name="pattern" value="%date{HH:mm:ss.SSS} %-5p %logger{36}
%X{akkaSource} [%file:%line] - %m%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} %-5p %logger{36} %X{akkaSource} [%file:%line] - %m%n</pattern>
</encoder>
</appender>
<logger name="logger1name" level="INFO" additivity="false">
<appender-ref ref="logger1appender"/>
</logger>
<logger name="logger2name" level="INFO" additivity="false">
<appender-ref ref="logger2appender"/>
</logger>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
具有依赖关系:
<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>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.10</version>
</dependency>
使用代码:
private static final Logger log1 = LoggerFactory.getLogger("logger1name");
private static final Logger log2 = LoggerFactory.getLogger("logger2name");