是否可以禁用创建注销日志文件?
当我将级别设置为 root 或将 logger 元素设置为 OFF 时,它将不会记录日志,但仍会创建添加程序中指定的文件。
是否可以选择禁用创建此文件? (除了删除配置xml文件)
即使没有记录器(或根目录)链接到附加程序,仍然会创建来自附加程序的日志文件。
谢谢。
================================================ =========================== 编辑。我要附加我的配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<variable name="LOG_LEVEL" value="${mylevel:-TRACE}" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${clogdir}/mylog.log</file>
<append>true</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d %p %t %c - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${clogdir}/mylog.log.%d{yyyy-MM-dd}</fileNamePattern>
</rollingPolicy>
</appender>
<root level="${LOG_LEVEL}">
<appender-ref ref="FILE" />
</root>
<appender name="log2" class="ch.qos.logback.core.FileAppender">
<file>${clogdir}/log2.log</file>
<append>true</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d %p %t %c - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${clogdir}/log2.log.%d{yyyy-MM-dd}</fileNamePattern>
</rollingPolicy>
</appender>
<logger name="log2" level="TRACE">
<appender-ref ref="log2" />
</logger>
</configuration>
答案 0 :(得分:1)
只要在配置中声明了文件附加程序,Logback就会创建附加程序类的实例并在其上调用start()
。您可以在AppenderAction.end()
中看到此内容。在start()
上调用FileAppender
将导致创建附加程序的配置文件,您可以在FileAppender.start()
中看到此行为。
因此,要完全禁用文件输出附加程序,必须确保未在Logback配置中声明它。
也许您正在寻找某种方法来将文件输出附加器标记为无操作,即,没有要向其发出事件的信息,也没有要创建的文件。使用Logback的FileAppender
当前实现(和子类),无法将附加程序标记为完全无操作。要实现此目的,您需要提供自己的FileAppender
子类并覆盖start()
。