<configuration scan="true">

    <!-- =============================
         콘솔 출력 설정 (배포용은 INFO 이상)
         ============================= -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- =============================
         파일 출력 설정 (롤링 파일)
         ============================= -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 하루마다 로그 파일 생성, 최대 30일 보관 -->
            <fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- =============================
         ROOT logger
         배포 환경에서는 INFO 이상
         ============================= -->
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </root>

    <!-- =============================
         패키지별 로그 레벨 조절
         필요시 DEBUG / TRACE
         ============================= -->
    <!-- Spring Framework 로그 최소화 -->
    <logger name="org.springframework" level="WARN"/>
    <logger name="org.hibernate" level="WARN"/>
    <logger name="org.apache" level="WARN"/>
    <!-- 애플리케이션 로그 -->
    <logger name="com.monitoring" level="INFO"/>

</configuration>