< 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

+ Recent posts