<?xml version="1.0" encoding="UTF-8"?>
// Log4j2 내부 동작 로깅 레벨 설정
<Configuration status="WARN">
<Appenders>
<!-- Console Appender -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %p %C{1.} [%t] %m%n"/>
</Console>
<!-- Rolling File Appender -->
<RollingFile name="RollingFile" fileName="logs/mylog.log"
filePattern="logs/mylog-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d %p %C{1.} [%t] %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<RollingFile name="RollingFileForPackage" fileName="logs/package.log"
filePattern="logs/package-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d %p %C{1.} [%t] %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<!-- Root Logger -->
<Root level="info">
<AppenderRef ref="RollingFile"/>
<AppenderRef ref="Console"/>
</Root>
<!-- Package Logger -->
<Logger name="com.example.package" level="info" additivity="false">
<AppenderRef ref="RollingFileForPackage"/>
</Logger>
</Loggers>
</Configuration>
%d: 로그 이벤트가 발생한 시간을 나타냅니다. 이 지정자 다음에는 날짜 및 시간 형식을 지정할 수 있습니다. 예를 들어, %d{yyyy-MM-dd HH:mm:ss}와 같이 사용할 경우 "년-월-일 시:분:초" 형식으로 시간이 기록됩니다.
%p: 로그 이벤트의 로그 레벨을 나타냅니다. 로그 레벨은 DEBUG, INFO, WARN, ERROR, FATAL 등이 있습니다.
%C{1.}: 로그 이벤트가 발생한 클래스의 이름, {1.}은 클래스 이름에서 패키지 이름을 생략하고 마지막 클래스의 이름만 표시하도록 지정
[%t]: 로그 이벤트가 발생한 스레드의 이름
%m: 로그 이벤트의 메시지
%n: 줄바꿈