일관된 로깅을 위한 로그백 구성 가이드!

최혜미·2024년 4월 30일
0

Project

목록 보기
11/12
post-thumbnail

📃 배경 및 목적:

로그백 구성이 없으면 프로젝트의 로그 관리 및 분석이 어렵습니다. 이를 해결하고 일관된 로깅 환경을 구축하기 위해 로그백 설정을 추가하고자 합니다. 로그백을 추가함으로써 에러 로그를 효율적으로 수집하고 분석할 수 있고, 이는 효율적인 디버깅 및 모니터링을 가능하게 합니다 .


📃 로그백 소개

Logback은 Java 애플리케이션을 위한 로깅 프레임워크입니다. SLF4J(Simple Logging Facade for Java)를 지원하며 다양한 방식으로 로그 메시지를 기록하고 관리할 수 있습니다. 로그백은 설정 파일을 통해 로깅 동작을 세밀하게 조절할 수 있어 프로젝트에 적합한 로깅 체계를 구축할 수 있습니다.


🛠️ 구성 요소

ConsoleAppender:
로그 메시지를 콘솔에 출력합니다. 이를 통해 개발자들은 실시간으로 로그를 확인할 수 있습니다.
RollingFileAppender:
로그 메시지를 파일에 저장하고, 파일 회전을 관리합니다. 이를 통해 로그 파일이 무한정 커지지 않고, 관리 가능한 크기로 유지됩니다.
TimeBasedRollingPolicy:
로그 회전을 시간과 파일 크기에 기반하여 수행합니다. 이 정책을 통해 로그 파일이 10MB를 초과하거나 하루가 지나면 자동으로 새 파일로 회전됩니다.
ThresholdFilter:
로그 레벨을 필터링합니다. 현재 설정은 "ERROR" 레벨 이상인 로그만 기록하도록 되어 있습니다. 이를 통해 에러 로그만 파일에 저장됩니다.


<configuration>
  <appender class="ch.qos.logback.core.ConsoleAppender" name="Console">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
    </layout>
  </appender>

  <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="RollingFile">
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</Pattern>
    </encoder>
    <file>${LOGS}/spring-boot-logger.log</file>

    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>ERROR</level>
    </filter>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <maxHistory>20</maxHistory>
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>10MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
  </appender>

  <property name="LOGS" value="./logs"/>
  <root level="ERROR">
    <appender-ref ref="Console"/>
    <appender-ref ref="RollingFile"/>
  </root>
</configuration>

❗️ 추가 정보 및 가이드

  • 로그는 ./logs 디렉토리에 저장되며, 루트 디렉토리 아래 'logs' 폴더에서 확인할 수 있습니다.
  • 로그 레벨을 변경하고자 하는 경우, logback-spring.xml 파일에서 ThresholdFilter 부분의 level 값을 조정하시면 됩니다.

🔗 관련 pr

pr : https://github.com/10aeat/10aeat_Backend/pull/24
issue : https://github.com/10aeat/10aeat_Backend/issues/23

profile
말하는 감자

0개의 댓글