<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="60">
  <!-- Папка и имя приложения -->
  <Properties>
    <Property name="LOG_DIR">logs</Property>
    <Property name="APP_NAME">iiko-app</Property>
  </Properties>

  <!-- Консоль -->
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8"/>
    </Console>

    <!-- Основной rolling файл -->
    <RollingFile name="File"
                 fileName="${LOG_DIR}/${APP_NAME}.log"
                 filePattern="${LOG_DIR}/${APP_NAME}.%d{yyyy-MM-dd}.log.gz">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8"/>
      <Policies>
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
      </Policies>
      <DefaultRolloverStrategy max="30" totalSizeCap="1GB"/>
    </RollingFile>

    <!-- Файл только для ошибок -->
    <RollingFile name="ErrorFile"
                 fileName="${LOG_DIR}/${APP_NAME}-error.log"
                 filePattern="${LOG_DIR}/${APP_NAME}-error.%d{yyyy-MM-dd}.log.gz">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8"/>
      <Policies>
        <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
      </Policies>
      <Filters>
        <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
      </Filters>
      <DefaultRolloverStrategy max="30" totalSizeCap="500MB"/>
    </RollingFile>
  </Appenders>

  <Loggers>
    <Root level="info">
      <AppenderRef ref="Console"/>
      <AppenderRef ref="File"/>
      <AppenderRef ref="ErrorFile"/>
    </Root>
  </Loggers>
</Configuration>
