메모. 개인적으로 사용하는 logback file appender 설정

 

  • 서비스를 운영시 파일로 log를 남길때는 아래 사항을 꼭 고려해야함
    • 로그 파일 용량이 너무 커서 vi로 오픈이 힘든걸 막아야함
    • 로그파일을 삭제 없이 계속 저장하면 disk full로 서비스 장애가 발생하니 주의
    • 적당한 보관기간으로 압축해서 롤링

logback.properties 설정

#로그파일 저장 디렉토리(유저/logs 디렉토리 하위에 서비스코드별로 디렉토리 구분)
log.file.dir=/home/svc_user/logs/svc_cd

#로그 파일 명(prefix에 환경코드 추가, 1개 서버에 blue/green 배포하는 경우를 위해서 was port별로 파일명 구분)
log.file.name=real_svc_cd_${server.port}.log

log.file.full=${log.file.dir}/${log.file.name}

#백업
log.file.backup.fileNamePattern=${log.file.dir}/backup/${log.file.name}_%d{yyyy-MM-dd}_%i.zip

#로그 패턴
log.pattern=%d{yyyy-MM-dd HH:mm:ss} [${HOSTNAME}] [%-5level] %logger{35}:%L - %msg%n

 

logback-spring.xml 설정(참고 링크)

 

  • 로그파일 1개는 20M로 유지
  • 최대 50의 로그파일을 유지
  • 최대 1000MB
  • 압축해서 롤링
 <!-- 외부 설정파일을 사용 -->
    <property resource="properties/logback.properties"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${log.file.full}</File>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.file.backup.fileNamePattern}</fileNamePattern>
            <maxFileSize>20MB</maxFileSize>
            <maxHistory>50</maxHistory>
            <totalSizeCap>1000MB</totalSizeCap>
        </rollingPolicy>
    </appender>

 

+ Recent posts