trace
debug
info
warn
error
private static final Logger logger =
LoggerFactory.getLogger(클래스.class);
logback-test.xml
(resource 폴더)
없으면 logback.groovy
그것도 없으면 logback.xml
모두 없으면 기본 설정 전략 BasicConfiguration
<configuration>
<!-- 어디에 로그를 남길것인지 -> 현재값은 콘솔에 남김 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
</encoder>
</appender>
<!-- 파일별, 디렉토리별 디버깅 레벨을 설정할 수 있음 -> 필터링 가능 -->
<!-- appender-ref를 따로 설정한 경우 로깅이 중첩 -> additivity false 로 둬야 해결 -->
<logger name="com.devcourse.springorder" level="debug" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<!-- 디버그 로깅 모드 -->
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
ConsoleAppender
: 콘솔FileAppender
: 파일RollingFileAppender
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<!-- 해당 경로의 로그 파일에 계속 append -->
<file>logs/kdt.log</file>
<!-- 각 로그마다 다른 파일로 기록되도록 하고 싶을 때 -->
<file>logs/kdt_${bySecond}.log</file>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- access.log 파일에는 오늘(최신)의 로그가 저장 -->
<!-- 롤링으로 설정한 파일에는 그날의 첫 로그가 저장 -->
<file>logs/access.log</file>
<!-- TimeBasedRollingPolicy에는 무얼 만들것인가, 언제 만들것인가가 모두 들어있으므로, 이거 하나로 설정 완료된 것 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/access-%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<logger name="com.devcourse.springorder" level="debug">
<appender-ref ref="ROLLING_FILE" />
</logger>
conversion specifiers
이용%d
: 로깅 이벤트 날짜 출력%logger{length}
%thread
%-5level
<property name="LOG_PATTERN" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
<appender ...>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
conversionRule
을 이용하면 PatternLayout에서 쓴 conversion 문자 추가 가능