Показаны сообщения с ярлыком logback. Показать все сообщения
Показаны сообщения с ярлыком logback. Показать все сообщения

вторник, 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" (иначе они архивировались без него).

среда, 14 декабря 2016 г.

Logback: описание идентификаторов тэга pattern

http://logback.qos.ch/manual/layouts.html#conversionWord

Пример строки настройки паттерна из Azk2logback.xml:
<pattern>%d{dd.MM.yy HH:mm:ss.SSS},%t,%p,%c{0},%m%n</pattern>
Пример вывода информации в журнал по настроенному паттерну:
12.12.16 20:06:34.732,Scheduler,DEBUG,SQL-execute,SELECT 1 FROM SchPlan WHERE Id={800000000361} FOR UPDATE (0 ms)

Описание ключевых слов:
  • %d{dd.MM.yy HH:mm:ss.SSS} - (date) дата;

  • %t - (thread) имя потока, создавшего информацию для журнала;

  • %p - уровень журнализации;

  • %c{0} - имя логгера, {0} - говорит о том, то выводить нужно только "хвостик" от полного имени, например, если полное имя "mainPackage.sub.sample.Bar", то при "%c{0}" будет выведен только "Bar";

  • %m - (msg) собственно сообщение для журнала;

  • %n - (new_line) сепаратор, он же символ новой строки, комбинация спецсимволов для новой строки, зависит от платформы (например, для Linux это "#10#10", а для Windows - "#13#10").
  • Архив