반응형
maven이나 gradle 설정에 들어가서 기존의 log4j 관련 dependency를 모두 주석한 뒤 다음만 남긴다. 그리고 logback 을 추가한다.
...
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
...
resources 폴더 아래에 logbaxk.xml 파일을 생성한다
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="FILE_LOG_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss}] [%thread] %-5level %logger{36} - %msg%n"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
파일로 남기는 걸 설정하려면 다음 옵션을 추가한다
한 파일에 100MB(maxFileSize) 까지 담으며, 보관기관은 90일이다(maxHistory)
...
<property name="LOG_DIR" value="/Users/dgpark/logs" />
<property name="LOG_NAME" value="membership.log" />
<property name="LOG_PATH_NAME" value="${LOG_DIR}/${LOG_NAME}" />
...
<!-- 이부분 추가 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH_NAME}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 날짜별로 분리 -->
<fileNamePattern>${LOG_DIR}/%d{yyyy-MM-dd}/${LOG_NAME}.%d{yyyy-MM-dd}.%i</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
</appender>
...
<root level="INFO">
<appender-ref ref="CONSOLE" />
<!-- 이부분 추가 -->
<appender-ref ref="FILE" />
</root>
실행해보면 다음과 같이 로그가 생성된다.
[2021-02-26 13:23:16] [RMI TCP Connection(2)-127.0.0.1] INFO c.j.e.c.batch ...
...
[2021-02-26 13:24:00] [task:scheduler#2da1d52a-3] INFO c.j.e.s.m.c.CheckStore ...
끝.
반응형
댓글