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

<configuration >

    <!-- 定义日志输出格式 -->
    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />

    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!-- 文件输出，每天滚动 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/syslog-serve.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 每天滚动 -->
            <fileNamePattern>logs/syslog-serve.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 保留的日志文件的最大天数 -->
            <maxHistory>1</maxHistory>
            <!-- 所有归档日志文件的总大小上限 -->
            <totalSizeCap>15GB</totalSizeCap>
            <!-- 启动时是否清理过期日志 -->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!-- 设置日志级别 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

    <!-- 可以设置特定包的日志级别 -->
    <!-- 例如，将com.example包的日志级别设置为DEBUG -->

    <!-- 专门屏蔽ProducerConfig的INFO日志 -->
    <logger name="org.apache.kafka.clients.producer.ProducerConfig" level="WARN"/>
    <!-- 更通用地屏蔽整个Kafka客户端包的INFO日志 -->
    <logger name="org.apache.kafka.clients" level="WARN"/>

    <!-- 方法1: 设置 Kafka 相关包为 WARN 级别 -->
    <logger name="org.apache.kafka" level="WARN"/>
    <logger name="kafka" level="WARN"/>

    <!-- 方法2: 更精确地控制特定类 -->
    <logger name="org.apache.kafka.common.utils.AppInfoParser" level="ERROR"/>
    <logger name="org.apache.kafka.common.metrics.Metrics" level="ERROR"/>

</configuration>