log4j2 설치 및 사용하기
태그: log4j2
카테고리: Spring
업데이트:
이번에는 스프링 서비스에서 log4j2를 설치하고 로그를 작성하는 방법을 정리해 볼 계획입니다. 스프링은 Gradle을 활용했습니다.
1. build.gradle에 dependency 추가하기
우선 기본 로깅 모듈인 logback의 의존성을 제거해야 합니다. 만약 logback의 의존성을 제거하지 않으면 multiple binding error가 발생합니다.
그리고 log4j2 의존성을 추가해 줍니다.
configurations {
all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' // logback 의존성 제거
}
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.10.3'
}
2. resources/application.properties 수정하기
우선 log4j2의 설정을 저장할 log4j2.properties 파일을 resources에 만들어줍니다.
그리고 application.properties에 아래와 같이 추가해 줍니다.
logging.config=log4j2.properties
3. resources/log4j2.properties 파일 설정
name = PropertiesConfig
property.filename = logs/example.log
appenders = console, rolling
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{dd.MM.yyyy HH:mm:ss,SSS} %-5p %c{1}:%L - %m%n
appender.rolling.type = RollingFile
appender.rolling.name = roll
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = logs/app/%d{MM-dd-yy-HH-mm-ss}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d{dd.MM.yyyy HH:mm:ss,SSS} %-5p %c{1}:%L - %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 2
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 5
loggers = rolling
logger.rolling.name = org.apache.logging.log4j.core.appender.rolling
logger.rolling.level = all
logger.rolling.additivity = true
logger.rolling.appenderRefs = rolling
logger.rolling.appenderRef.rolling.ref = roll
rootLogger.level = all
rootLogger.appenderRefs = rolling, stdout
rootLogger.appenderRef.rolling.ref = roll
rootLogger.appenderRef.stdout.ref = STDOUT
4. log 작성하기
이제 모든 설정이 끝났으니 다음과 같이 logger를 생성하고 log를 작성하면 됩니다.
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Test {
private static final Logger logger = LogManager.getLogger(Test.class);
public static void main(String[] args) {
logger.info("INFO SUCCESS");
logger.debug("DEBUG SUCCESS");
logger.error("ERROR SUCCESS");
}
}
Log Level 종류
Log Level은 다음과 같이 6개를 가지고있습니다.
trace < debug < info < warn < error
댓글남기기