Java Logging Framework
- java.util.logging
- Apache Commons logging
- Log4J
- Logback
- SLF4J
SLF4J (Simple Loggin Facade for Java)
- Loggin Framework들을 추상화시켜 놓은 것
- Facade Pattern을 이용한 Logging framework
Log Level
trace - debug - info - warn - error
Logger
Logger 만들기
1private static final Logger logger = LoggerFactory.getLogger(OrderTester.class);
- Logger 이름은 보통 FQCN (상위 패키지 + 클래스)으로 사용한다
Logger 사용
1logger.info("version -> {}", logger.getName());
logback
logback 설정파일 우선순위
logback-test.yml -> logback.groovy -> logback.xml -> 기본 설정
logback.xml - 기본 설정
1<configuration>
2<property name="LOG_PATTERN" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{10} - %msg%n" />
3
4<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
5 <encoder>
6 <pattern>${LOG_PATTERN}</pattern>
7 </encoder>
8</appender>
9 <root level="debug">
10 <appender-ref ref="STDOUT" />
11 </root>
12</configuration>
- FileAppender를 사용하여 파일에 저장 가능
- RollingFileappender를 사용하여 일자별로 파일에 저장 가능
- 이외에도 다양한 설정 가능
Conversion
-
로깅 포맷을 바꾸는 방법이다
-
json으로 형식을 바꾼다던가, 콘솔에서 로그에 색을 입힐수 있다.
-
Color Converter 사용 예제
- logback.xml 설정
1<!-- logback.xml --> 2 <conversionRule 3 conversionWord="clr" 4 converterClass="org.springframework.boot.logging.logback.ColorConverter" /> 5 {...} 6 <pattern>%clr(%d{HH:mm:ss.SSS}){cyan} [%thread] %clr(%-5level)</pattern>
- Ansi문자 출력 설정
1// MainClass.java 2AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);
- logback.xml 설정