아주 유명한 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에 넣어도 된다. 될껄? 아마도
자 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("나올껄...")
}
}