Java 禁用创建日志文件

Java 禁用创建日志文件,java,logging,logback,Java,Logging,Logback,是否可以禁用创建回写日志文件 当我将level设置为root或loggerelements设置为OFF时,它不会记录,但仍会创建appender中指定的文件 是否有禁用创建此文件的选项?(除删除配置xml文件外) 即使没有指向appender的记录器(或根)链接,appender中的日志文件仍然会创建 多谢各位 =========================================================================== 编辑我正在附加我的配置: <

是否可以禁用创建回写日志文件

当我将level设置为rootloggerelements设置为OFF时,它不会记录,但仍会创建appender中指定的文件

是否有禁用创建此文件的选项?(除删除配置xml文件外)

即使没有指向appender的记录器(或根)链接,appender中的日志文件仍然会创建

多谢各位

=========================================================================== 编辑我正在附加我的配置:

<?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> 

${clogdir}/mylog.log
真的
%d%p%t%c-%m%n
${clogdir}/mylog.log.%d{yyyy-MM-dd}
${clogdir}/log2.log
真的
%d%p%t%c-%m%n
${clogdir}/log2.log.%d{yyyy-MM-dd}

只要在配置中声明了文件appender,那么Logback将创建appender类的实例,并在其上调用
start()
。你可以从中看到这一点。在
FileAppender
上调用
start()

因此,为了完全禁用文件输出附加器,您必须确保它没有在您的Logback配置中声明


也许您正在寻找某种方法,将文件输出附加器标记为无操作,即无需向其发出事件无需创建文件。使用Logback当前的
FileAppender
实现(以及子类),无法将appender标记为完全不可操作。要实现这一点,您需要提供自己的
FileAppender
子类并覆盖
start()

我已附加了日志文件。仅当我指定根记录器时才应创建它。现在我只能通过将log_LEVEL设置为OFF来告诉它不要附加日志行。但是仍然创建了myLog.log文件。即使我将
更改为
。每次都会创建日志2,没关系。抱歉,我已经更新了答案,结果证明,只要在配置中包含appender(不管该appender是否被日志记录器引用),就足以创建appender的文件。谢谢您的回答。是否可以在配置中引用其他xml?我正在考虑在其他xml文件中定义appender,然后仅在需要时引用它的可能性。您可以使用启用/禁用文件appender。通过这种方式,您可以有一个logback.xml文件,但根据JVM系统参数的值等条件,有两种不同的行为,例如,
-Denable.file.output=true | false
,效果非常好。非常感谢:)