< Logging 프레임워크 >
1. log4j
: 개발 중단, 최근 보안 이슈로 사용하지 않는 게 낫다...
참고 : 보안뉴스 권준 '거의 모든 서버가 위험하다! 매우 치명적인 '로그4j'보안 취약점 발견'
https://www.boannews.com/media/view.asp?idx=103257
2. logback
: slf4j의 구현체. 스프링부트에서는 기본으로 설정되어 있다.
< 로그의 레벨 >
1. Error : 빠른 조치가 필요한 단계
2. Warn : 로직상 유효성 확인, 예상가능한 문제로 인한 예외처리, 운영엔 문제없음
3. Info : 참고할 만한 사항
------------------------------------------------
4. debug : 개발단계에서 사용. sql 로깅 가능
5. trace : 모든 레벨에 대한 로깅이 추적된다.
< logback-spring.xml >
<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="60 seconds">
<property name="LOG_DIR" value="log"/>
<property name="LOG_PATH_NAME" value="${LOG_DIR}/data.log" />
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>UTF-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSSS} [%12t] %-5level %logger{5} - %msg %n</pattern>
</encoder>
</appender>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>UTF-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSSS} [%12t] %-5level %logger{5} - %msg %n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>C:\logs\%d{yyyy-MM-dd}_log.log</FileNamePattern>
<MaxHistory>365</MaxHistory>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</configuration>
내가 쓰는 logback-spring.xml 포맷이다.
로그의 경우 아래와 같이 application.properties에서도 설정이 가능하지만,
logging.level.root=debug
logging.level.com.springboottest.controller=info
logging.path=c:/logs/
logging.file=c:/logs/my.log
logging.config=classpath:/logback.logback.xml
스프링부트는 classpath에 logback-spring.xml이 있으면 알아서 읽기 때문에
상세 설정을 위해 xml파일을 만들어 따로 분리해 두는게 편리하다.
스프링부트는 logback-spring.xml이라는 파일이 없다면 properties.yml파일을 읽는다.
우선순위는 .yml > .xml 이다.
'Java > SpringBoot' 카테고리의 다른 글
Spring boot : Mustache 사용시 한글 인코딩 설정 (0) | 2024.03.11 |
---|---|
Spring Security CSRF 설정 (0) | 2021.12.09 |
Spring Security 기본 설정 (0) | 2021.12.08 |