Инструменты пользователя

Инструменты сайта


develop:java:logging

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
develop:java:logging [2024/01/09 03:02]
admin
develop:java:logging [2024/03/02 11:40] (текущий)
admin
Строка 494: Строка 494:
 </details> </details>
  
 +
 +
 +
 +===== Ротирование логов =====
 +Аппендер класса **"RollingFileAppender"** расширяет класс **"FileAppender"**, добавляя возможность ротирования файлов\\
 +
 +Два важных подкомпонента: **RollingPolicy** ("что делать") и **TriggeringPolicy** ("когда это делать")\\
 +Первый может реализовать интерфейс для второго, тогда достаточно указать только его\\
 +
 +
 +==== RollingPolicy ====
 +Внутри аппендера создается xml компонент политики, имеются разные классы, определяющие поведение\\
 +
 +<details>
 +<summary>:!: Примеры классов для RollingPolicy</summary>
 +
 +**TimeBasedRollingPolicy** - На основе времени, один обязательный аргумент "fileNamePattern", так же есть "MaxHistory"\\
 +Шаблон имени должен сдержать спецификатор "%d", тот может содержать шаблон даты/времени, по умолчанию "гггг-ММ-дд". **Период ротирования выводится из значения в fileNamePattern**\\
 +т.е. в данном случае в полночь, если время не указано\\
 +
 +**Сжатие** - для этого нужно добавить расширение "gz/zip" к имени файла\\
 +
 +**SizeAndTimeBaseRollingPolicy** - собсна по дате и размеру. Здесь добавляется еще один обязательный токен именования - "%i", обозначающий порядковый номер\\
 +
 +Пример конфигурации
 +<code xml>
 +<configuration>
 +  <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
 +    <file>mylog.txt</file>
 +    <append>true</append>
 +
 + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
 +      <!-- rollover daily -->
 +      <fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
 +       <maxFileSize>100MB</maxFileSize>    
 +       <maxHistory>60</maxHistory>
 +       <totalSizeCap>20GB</totalSizeCap>
 +    </rollingPolicy>
 +
 +    <encoder>
 +      <pattern>%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
 +      </pattern>
 +    </encoder>
 +  </appender>
 +
 +
 +  <root level="DEBUG">
 +    <appender-ref ref="ROLLING" />
 +  </root>
 +
 +</configuration>
 +</code>
 +
 +</details>
  
  
  
  
develop/java/logging.1704769351.txt.gz · Последнее изменение: 2024/01/09 03:02 — admin