Log4j Apache Log4j™ 2 사용하기

황제낙엽 2023.04.28 15:13 조회 수 : 3

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 경로에서 찾게 된다