Отключить создание файла журнала входа - PullRequest
0 голосов
/ 28 августа 2018

Можно ли отключить создание файлов журнала входа в систему?

Когда я устанавливаю уровень на root или logger элементов на OFF , он не будет регистрироваться, но файл, указанный в appender, все еще будет создан.

Есть ли возможность отключить создание этого файла? (кроме удаления файла config xml)

Даже если регистратор (или пользователь root) не ссылается на 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> 

1 Ответ

0 голосов
/ 28 августа 2018

Пока файл appender объявлен в вашей конфигурации, Logback создаст экземпляр класса appender и вызовет start() для него. Вы можете увидеть это в AppenderAction.end(). Вызов start() для FileAppender вызовет создание настроенного файла приложения, это можно увидеть в FileAppender.start().

Итак, чтобы полностью отключить приложение вывода файлов, вы должны убедиться, что оно не объявлено в конфигурации Logback.

Возможно, вы ищете какой-нибудь способ пометить ваш выходной файл appender как запретный, т. Е. Нет событий для его отправки и файл не будет создан. Нет никакого способа - с текущей реализацией Logback (и подклассами) FileAppender - пометить аппендер как полный неоперативный оператор. Для реализации этого вам необходимо предоставить собственный подкласс FileAppender и переопределить start().

...