вторник, 28 ноября 2017 г.

logback.xml с периодическим автоматическим сканированием параметров

Пример "logback.xml" с автосканированием параметров журнализации через заданный период времени (автосканирование регулируется параметрами "scan" и "scanPeriod"):

<?xml version="1.0" encoding="UTF-8"?>
<!--Конфигурирование логера с помощью внешнего XML-файла, подробности см. на logback.qos.ch-->
<configuration scan="true" scanPeriod="120 seconds">
    <!--Возможные значения уровня журнализации: DEBUG, INFO, WARN, ERROR, FATAL, OFF-->
    <!--Параметры журнализации в консоль-->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level><!--Уровень журнализации сервера приложений в стандартный поток вывода-->
        </filter>
        <encoder>
            <charset>Cp866</charset><!--Кодировка (Cp866,Cp1251,KOI8_R,ISO8859_5,UTF-8)-->
            <pattern>%d{dd.MM.yy HH:mm:ss.SSS},%t,%p,%c{0},%m%n</pattern>
        </encoder>
    </appender>

    <!--Параметры журнализации в файл-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level><!--Уровень журнализации сервера приложений-->
        </filter>
        <append>true</append>
        <File>azk2.log</File><!--путь к файла и имя файла лога-->
        <encoder>
            <charset>Cp1251</charset><!--Кодировка (Cp866,Cp1251,KOI8_R,ISO8859_5,UTF-8)-->
            <pattern>%d{dd.MM.yy HH:mm:ss.SSS},%t,%p,%c{0},%m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>log/azk2log%d{yyyy-MM-dd }.%i.log.zip
            </FileNamePattern><!--путь к файлу и имя файла, используемое для сохранения архивов логов-->
<maxHistory>30</maxHistory> <!--колличество дней в архиве-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>300MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <root level="TRACE">
        <appender-ref ref="stdout"/>
        <appender-ref ref="file"/>
    </root>


    <!--Параметры журнализации в файл конкретного класса-->
    <!--<appender name="classappender" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
        <!--<File>azk2class.log</File><!–путь к файла и имя файла лога–>-->
        <!--<encoder>-->
            <!--<charset>UTF-8</charset><!–Используемая кодировка для вывода в файл (Cp866,Cp1251,KOI8_R,ISO8859_5,UTF-8)–>-->
            <!--<pattern>%d{dd.MM.yy HH:mm:ss.SSS},%t,%p,%c{0},%m%n</pattern><!–формат вывода–>-->
        <!--</encoder>-->
        <!--<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">-->
            <!--<!–Размер "револьверного" буфера архивов логов. При формировании–>-->
            <!--<!–нового архива лога старые файлы будут увеличивать–>-->
            <!--<maxIndex>5</maxIndex>-->
            <!--<FileNamePattern>/log/azk2classlog.%i.log.zip-->
            <!--</FileNamePattern><!–путь к файлу и имя файла, используемое для сохранения архивов логов–>-->
        <!--</rollingPolicy>-->
        <!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
            <!--<MaxFileSize>100MB</MaxFileSize><!–размер файла при привыщение которого происходит архивация–>-->
        <!--</triggeringPolicy>-->
    <!--</appender>-->
    <!--<!–указываем класс для которого хотим изменить уровень логирования–>-->
    <!--<logger name="com.bssys.server.invocation.Server" level="DEBUG">-->
        <!--<appender-ref ref="classappender"/>-->
    <!--</logger>-->
</configuration>


Примечания:
в этой строке настройки
            <FileNamePattern>log/azk2log%d{yyyy-MM-dd }.%i.log.zip
            </FileNamePattern><!--путь к файлу и имя файла, используемое для сохранения архивов логов-->
добавлено ".log" - чтобы в архивы револьверного буфера логи попадали с расширением ".log" (иначе они архивировались без него).

Комментариев нет:

Архив