sitelink1 | https://logging.apache.org/log4j/2.x/man...ation.html |
---|---|
sitelink2 | https://tlatmsrud.tistory.com/31 |
sitelink3 | |
extra_vars4 | |
extra_vars5 | |
extra_vars6 |
1. 다음의 라이브러리를 추가한다
- log4j-1.2-api-2.x.x.jar
- log4j-api-2.x.x.jar
- log4j-core-2.x.x.jar
2. 로깅할 클래스에서 다음과 같이 전역변수를 선언한다
- Logger log = LogManager.getLogger(클래스명.class);
3. 다음과 같은 형식으로 log4j2.xml 파일을 작성한다
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<!-- 로그 출력 방식 -->
<Appenders>
<!-- 콘솔 출력 방식 -->
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
</Console>
<!-- 파일 저장 방식 -->
<File name="file" fileName="D:/LOGS/JINIEBOX_DEV.log">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</File>
</Appenders>
<Loggers>
<!-- one 패키지의 'andTwo 클래스의 로그 레벨은 info로 올리고', file로 저장할래 -->
<!-- additivity는 같은 로그가 있다면 additivity가 설정되어있는 로거에서만 출력하도로 설정하는거야.
참고로 모든 로거에는 기본 로그가 남는데 아래처럼 따로 설정한 로그 방식을 AppenderRef 해준다면 기본 로그+Append 로그. 총 2개의 로그가 남아.
기본로그는 최소의 정보만 들어있기때문에 이를 막아야겠지? 로그 자체는 동일하기때문에 additivity를 false로 해 주면 기본로그는 뜨지 않을거야. -->
<Logger name = "com.omnibuscode" level="DEBUG" additivity = 'false'>
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="file"/>
</Logger>
</Loggers>
</Configuration>
4. classpath 경로에 log4j2.xml 을 위치한다
- log4j2 가 로드되면서 설정 파일을 classpath 경로에서 찾게 된다