본문 바로가기
공부/프로그래밍

[spring] log4j 에서 logback 으로 변경하기

by demonic_ 2021. 3. 2.
반응형

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 ...

 

 

 

끝.

반응형

댓글