Language/Java

logback 설정

아르비스 2020. 6. 1. 14:04

 

springboot에는 기본적으로 slf4j library가 포함되어 있어서, Log4j 나 logback을 모두 쓸수 있다.

logback이 좀더 성능이 좋다고 함.. 자세한 사항은 인터넷 서핑..

 

[logback 설정방법]

1. "resources" 폴더 하위에 "logback-spring.xml" 파일 생성하여 다음과 같이 설정하기

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!--로그 파일 저장 위치-->
    <property name="LOGS_PATH" value="./logsTest"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm} %-5level %logger{36} - %msg%n</Pattern>
        </layout>
    </appender>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="DAILY_ROLLING_FILE_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOGS_PATH}/logbackTest-${server.port}.log</file>
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOGS_PATH}/logback.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 100MB -->
                <maxFileSize>100MB</maxFileSize>
                <!-- kb, mb, gb -->
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>5</maxHistory>
        </rollingPolicy>
    </appender>

    <logger name="com.cds.api" level="DEBUG">
        <appender-ref ref="CONSOLE" />
    </logger>
    <logger name="com.cds.api" level="INFO">
        <appender-ref ref="DAILY_ROLLING_FILE_APPENDER" />
    </logger>
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

 

2. server port 별로 app log를 남기기 위해서 , "${server.port}" 추가함.

  실행방법 

 

java -Dserver.port=8081 -jar cds-0.0.1-SNAPSHOT.jar --spring.config.location=file:application.properties

 

3. logback config file 외부에서 적용하기.

java -jar app.jar --logging.config=./src/test/resources/logback.xml

위와 같이 설정파일을 외부에서 추가 할수도 있음..