[Spring Boot]log4j2 적용

bbbbbhyun·2024년 10월 26일

Spring

목록 보기
8/12

build.gradle 수정

configurations {
    //내부 로깅 프레임워크(Logback)을 제외
    configureEach {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    }
    compileOnly {
        extendsFrom annotationProcessor
    }

}
...
dependencies {
	...
    // Spring Boot Log4j2 추가
    implementation "org.springframework.boot:spring-boot-starter-log4j2";
    ...
}

yml 수정

logging:
  config: classpath:log4j2.xml

log4j2.xml 추가

  • xml위치 : resource/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <!-- 해당 설정파일에서 사용하는 프로퍼티-->
    <Properties>
        <property name="LOGS_PATH">./logs</property>
    </Properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="[%-5level][%d{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%logger{36}]: %msg%n"/>
        </Console>

        <!-- 파일 -->
        <RollingFile name="RollingFile">
            <FileName>${LOGS_PATH}/test.log</FileName>
            <FilePattern>${LOGS_PATH}/test.log.%d{yyyy-MM-dd}</FilePattern>
            <PatternLayout>
                <Pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%logger{36}]: %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="100MB"/>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
        </RollingFile>

    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile"/>
        </Root>

        <!-- Application Loggers -->
        <!-- Root 보다 우선 순위가 높습니다. -->
        <logger name="com.test.test" level="debug">
            <AppenderRef ref="console"/>
            <AppenderRef ref="RollingFile"/>
        </logger>
    </Loggers>
</Configuration>

출력 예시

[로그레벨][yyyy-MM-dd HH:mm:ss.SSS][threadName][className]: msg

[INFO ][2024-10-26 19:26:35.035][http-nio-8080-exec-1][com.sample.test.service.MemberServiceImpl]: log4j2 success
profile
BackEnd developer

0개의 댓글