log config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- ===== Appenders ===== -->

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%cyan(%d{HH:mm:ss.SSS}) %magenta([%thread]) %highlight(%-5level) %yellow(%logger{36}) - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Linux 文件输出 -->
    <if condition='!"${os.name}".toLowerCase().contains("win")'>
        <then>
            <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <file>/var/log/kits-backend/app.log</file>
                <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                    <fileNamePattern>/var/log/kits-backend/app.%d{yyyy-'W'ww}.%i.log.gz</fileNamePattern>
                    <maxFileSize>200MB</maxFileSize>
                    <maxHistory>10</maxHistory>
                    <totalSizeCap>5GB</totalSizeCap>
                    <cleanHistoryOnStart>true</cleanHistoryOnStart>
                </rollingPolicy>
                <encoder>
                    <charset>UTF-8</charset>
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
                </encoder>
            </appender>
        </then>
    </if>

    <!-- Windows 文件输出 -->
    <if condition='"${os.name}".toLowerCase().contains("win")'>
        <then>
            <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <file>logs/app.log</file>
                <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                    <fileNamePattern>logs/app.%d{yyyy-'W'ww}.%i.log.gz</fileNamePattern>
                    <maxFileSize>200MB</maxFileSize>
                    <maxHistory>10</maxHistory>
                    <totalSizeCap>5GB</totalSizeCap>
                    <cleanHistoryOnStart>true</cleanHistoryOnStart>
                </rollingPolicy>
                <encoder>
                    <charset>UTF-8</charset>
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
                </encoder>
            </appender>
        </then>
    </if>

    <!-- ===== Loggers ===== -->

    <logger name="io.github.cymoo.colleen" level="INFO"/>
    <logger name="io.undertow" level="INFO"/>
    <logger name="org.xnio" level="WARN"/>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

</configuration>