본문 바로가기
프로그래밍/Log4J

Log4J2 설정

by Flow.X 2022. 1. 6.
728x90

아주 유명한 Log4J이다.

 

요즘 Log4J 취약점때문에 난리난리도 아닌것 같다.  여길보고 조치하면 될듯하다.

 

그중 아래 내용이 있어 저걸 기준으로 그냥 설치하자 . 

더보기
더보기
가이드 중 

○ JAVA사용 버전에 따라 최신 Log4j 버전으로 업데이트를 수행하여야 합니다.

- JAVA 8 : Log4j 2.16.0 버전으로 업데이트

- JAVA 7 : Log4j 2.12.2 버전으로 업데이트

업데이트 되었넹.

Java 8 이상은 2.17.0 이상 쓰면 해결되겠다.

 o 제조사 홈페이지를 통해 최신버전으로 업데이트 적용[3]
   ※ 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
  - Java 8 이상 : Log4j 2.17.0으로 업데이트
  - Java 7 : Log4j 2.12.3으로 업데이트
  - Java 6 : Log4j 2.3.1으로 업데이트
     ※ log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 위 취약점의 영향을 받지 않음


 o 제조사 홈페이지를 통해 최신버전으로 업데이트 적용 [3]
   ※ 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
    - CVE-2021-44228, CVE-2021-45046
      · Java 8 이상 : Log4j 2.17.0으로 업데이트
      · Java 7 : Log4j 2.12.3으로 업데이트
      · Java 6 : Log4j 2.3.1으로 업데이트
           ※ log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 위 취약점의 영향을 받지 않음
   - CVE-2021-4104
      · Java 8 : Log4j 2.17.0으로 업데이트
      · Java 7 : Log4j 2.12.3으로 업데이트
      · Java 6 : Log4j 2.3.1으로 업데이트

 

 

다운로드는 아래서  log4j 2를 받자.

 

설마 소스를 받아서 컴파일 할 부지런한분은 없겠지? Apache Log4j 2 binary 이거 받아야 편하고 빠르게 가능하다

https://logging.apache.org/log4j/2.x/download.html

 

필요파일

압축을 풀면 어마무시하게 파일들이 쏟아진다. ( 이런거 정말 싫다. 게으른데 또 검색해서 필요파일만 옮겨야 하는 불상사가 생긴다)

파일은 두개만 있으면 된다. ( 2021.12.24일 기준 아래 버전이 최신이다. 크리스마스 이브날 뭐하니 넌...) 

 

log4j-api-2.17.0.jar, log4j-core-2.17.0.jar 두개 콕 클릭해서 선택해도 되고 프로젝트 생성한 폴더 내 lib에 넣어도 된다. 될껄? 아마도

vscode java 외부 lib 추가 

 

자 Log4J  불러보자

기존 코드에 넣어도 되고 ( 그럼 Netty lib때문에 import 선택창이 표시되니 아래 코드를 복붙하자.( 오늘도 키 3개가 닳았습니다)

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Test {
    
    private static final Logger logger = LogManager.getLogger("클래스명보통적음");

    public static void main(String[] args) throws Exception {
        logger.debug("잘 찍히니..");
    }
}

안나온다. log4j config에서 로그레벨을 설정해줘야 하는데 구찮다 코드에서 걍 하자.

구글신을 믿고 검색하니 떡하니 나옴 그래서 아래처럼 하면 나온다. (요놈 추가만)

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import org.apache.logging.log4j.core.config.Configurator; // 요놈 추가
import org.apache.logging.log4j.Level; // 요놈 추가 

public class DiscardServer {
    private static final Logger logger = LogManager.getLogger(DiscardServer.class.getName());
    
	public static void main(String[] args) throws Exception {
		Configurator.setLevel(DiscardServer.class.getName(), Level.ALL); // 요놈 추가
		log.debug("나올껄...")
    }
}
728x90