[SpringBoot] Log 설정 - Logback 로그백
본문 바로가기

Web 개발/Java, SpringBoot, JPA

[SpringBoot] Log 설정 - Logback 로그백

728x90
반응형
Logging 이란?

프로그램 개발 중 및 완료 후 발생할 수 있는 오류에 대해 디버깅하거나 운영 중인 프로그램 상태를 모니터링 하기 위해 필요한 정보(로그)를 기록하는 것

 

Logback 이란?

자바 오픈소스 로깅 프레임워크로

스프링 부트에 기본으로 설정되어 있어서 별도로 라이브러리를 추가하지 않아도 된다.

 

 

Logback 설정

 

1. Resource 에 logback-spring.xml 추가

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <!-- 변수 지정 -->
    <property name="LOG_DIR" value="D:\\logs\\ssms\\" />
    <property name="LOG_PATH_NAME" value="${LOG_DIR}/data.log" />
    <!-- FILE Appender -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_PATH_NAME}</file>
    <!-- 일자별로 로그파일 적용하기 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>${LOG_PATH_NAME}.%d{yyyyMMdd}</fileNamePattern>
    <maxHistory>60</maxHistory> <!-- 일자별 백업파일의 보관기간 -->
    </rollingPolicy>
    <encoder>
    <pattern>%d{yyyy-MM-dd HH:mm:ss} [%-5p] [%F]%M\(%L\) : %m%n</pattern>
    </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(%-40.40logger{39}){cyan} %clr(%4L){magenta} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}</pattern>
        </layout>
    </appender>
    <!-- TRACE > DEBUG > INFO > WARN > ERROR, 대소문자 구분 안함 -->
    <!-- profile 을 읽어서 appender 을 설정할수 있다.(phase별 파일을 안만들어도 되는 좋은 기능) -->
    <springProfile name="local">
        <root level="INFO">
            <appender-ref ref="FILE" />
            <appender-ref ref="STDOUT" />
        </root>
    </springProfile>
    <springProfile name="dev">
        <root level="INFO">
            <!--<appender-ref ref="FILE" />-->
            <appender-ref ref="STDOUT" />
        </root>
    </springProfile>
    <springProfile name="prod">
        <root level="DEBUG">
            <appender-ref ref="FILE" />
            <appender-ref ref="STDOUT" />
        </root>
    </springProfile>
</configuration>

 

 

 

2. yml에 Log 레벨 설정

logging:
  level:
    root: INFO
    org.springframework:
      web: INFO
      security: INFO
      session: INFO
      data: INFO
      jdbc:
        core:
          JdbcTemplate: INFO
          StatementCreatorUtils: TRACE
      org.apache.tiles: DEBUG

 

 

 

참고: 

https://thinkwarelab.wordpress.com/2016/11/11/java%EC%97%90%EC%84%9C-logback%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%A1%9C%EA%B9%85logging-%EA%B0%9C%EC%9A%94/

 

https://goddaehee.tistory.com/206

728x90
반응형