【发布时间】:2021-11-13 10:29:23
【问题描述】:
我正在使用 logback.xml 文件来设置日志记录环境。在这里,我有 2 个附加程序,一个用于控制台,另一个用于文件。控制台附加程序将始终打印该值,但文件附加程序需要在需要时打开。
以下是我的配置,其中两个附加程序 STDOUT 和文件都添加了根目录。 我想要控制文件附加程序日志,并且当我将 level 的值从 OFF 更改为其他值时想要什么,那么只有它应该工作。 目前,如果将级别更改为 OFF,则停止两个 appender,并且无法在控制台上看到任何内容。
<configuration>
<appender name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="file" class="ch.qos.logback.core.FileAppender">
<file>/tmp/logback.log</file>
<append>true</append>
<immediateFlush>true</immediateFlush>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="com.demo" level="OFF">
<appender-ref ref="file" />
</logger>
<root level="info">
<appender-ref ref="file" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
下面是java代码。
package com.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
static Logger loger = LoggerFactory.getLogger(Main.class);
public static void main(String args[]) {
loger.info(System.getenv("LOGFILE"));
loger.info("hello");
}
}
【问题讨论】:
-
没有什么叫 SNSMain,Main 是记录器引用的类的名称。