[TIL] W3D5 Logging
Logging
로그 남기기
System.out.println()
은 정보 저장이 어렵고, 성능 문제가 있음(overhead)
SLF4J(Simple Logging Facade for Java)
- Logging Framework들을 추상화해놓음
- 하위의 어떤 프레임워크를 사용하는지 모르고 인터페이스를 사용
- 여러 프레임워크를 바인딩 모듈로 연결
// 소스 코드 private static final Logger logger = LoggerFactory.getLogger(OrderTester.class); public void logName() { logger.info("name -> {}", properties.getName()); }
// 콘솔 19:01:25.304 [main] INFO com.prgms.kdtspringorder.OrderTester - name -> jummi
private static final Logger logger
: 같은 클래스의 인스턴스는 하나의 logger를 공유한다.OrderTester.class
,com.prgms.kdtspringorder.OrderTester
: logger의 이름(class명을 사용한다.)INFO
: logger의 info 메소드 사용
Logback
Message format
- logback.xml template: Automatic configuration with logback-test.xml or logback.xml
- Ch6.Layouts
- conversion word: 프레임워크 내에서 생성된 로깅 이벤트 -> 문자열로 변환
- pattern: ex> Class SimpleDateFormat
- RollingFileAppender
하루마다 파일을 생성해서 로그를 기록하기
RollingPolicy(무슨 파일을 어떻게 만들거냐)와 TriggerPolicy(언제 만들거냐)를 모두 정의해주어야 함
-> TimeBasedRollingPolicy가 모두 구현해서 이것만 설정하면 끝<appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/access.log</file> <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>
-
<file>logs/access.log</file>
이 없을 때
access-2021-08-25.log 생성 -> 자정 지나면 access-2021-08-26.log가 새로 만들어지고 여기에 마저 로깅 -
<file>logs/access.log</file>
이 있을 때
먼저 access.log가 생성 -> 자정이 지나면 access-2021-08-25.log로 변경 -> 새로운 access.log 생성, 로깅 -> ...
최신 로그는 모두 access.log에 있게 된다. 날짜를 몰라도 오늘자 log구나 알 수 있다.
SpringBoot
Conversion over Configuration(CoC): 설정보다 관례를 중시한다.
- 모든걸 설정하면서 application을 구성하기보다는, 관례에 따라 기본 구성이 됨. (best practice)
- 단순성, 유연성
Banner
얘를 배너라고 한다.
Text to ASCII Art Generator (TAAG)에서 원하는걸 복사해서 resources/banner.txt에 붙여넣기
궁금한 점
- Logback이 정확히 무엇인가?
Author And Source
이 문제에 관하여([TIL] W3D5 Logging), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jummi10/TIL-W3D5-Logging저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)