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
위와 같이 설정파일을 외부에서 추가 할수도 있음..