[log4j] java log4j2 적용하기 / log4j2 properties / log4j 옵션, 설정

728x90
반응형

환경

NO Spring

Only JAVA7

 

 

현재 프로젝트는 java7 버전이다.

이번에 log4j 이슈 문제로 아무 버전이나 적용하면 안되서

어떤 버전을 적용해야 되나 찾아봤다.

 

출처 - https://gov.ucloudbiz.kt.com/support/noticeDetail.html?seq=100&type=n

Log4j 2.12.2 버전을 다운 받자!

 

- download link

https://logging.apache.org/log4j/log4j-2.12.1/download.html

 

기존에 있었던 log4j-1.2.14.jar는 삭제한다.

 

1.추가파일

log4j-api-2.12.2.jar

log4j-core-2.12.2.jar

이 두가지 파일을 WEB-INF/lib에 추가시켜줬다.

Properties - Java Build Path - Libraries - ADD External JARs...

여기에도 추가시켜줬다.

 

name = PropertiesConfig
property.filename = log4j2.properties
 
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{yyyy-MM-dd HH:mm:ss}] :: [%p] %c >> %m%n 
appender.console.filter.threshold.type = ThresholdFilter
appender.console.filter.threshold.level = info

appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = ${filename}.%d{yyyy-MM-dd}.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = [%p], %d{yyyy-MM-dd HH:mm:ss} %c{1}:%L - %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 1
appender.rolling.policies.time.modulate = true
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 3
appender.rolling.filter.threshold.type = ThresholdFilter
appender.rolling.filter.threshold.level = info

#for java code

#logger.rolling.name = Application
#logger.rolling.level = info
#logger.rolling.additivity = false
#logger.rolling.appenderRef.rolling.ref = RollingFile

rootLogger.level = all
rootLogger.appenderRefs = rolling, STDOUT
rootLogger.appenderRef.rolling.ref = RollingFile
rootLogger.appenderRef.stdout.ref = STDOUT

log4j2의 properties 형식이다.

2. log4j2.properties

log4j2.properties 파일을 src 하위에 넣어준다.

 

project - New - Source Folder 해서 새로운 폴더를 만들어서 넣어줘도 된다.

후자의 방법으로 한다면 Properties - Java Build Path - Source - Add Folder... 에서 경로를 잡아줘야한다.

* 기본 파일명규칙을 지켜야한다. [log4j2.xml, log4j2.properties, log4j2.json, log4j2.jsn, log4j2.yaml, log4j2.yml]

 

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

public class Test {
	
	private static final Logger LOGGER = LogManager.getLogger(Test.class.getName());
	
	public static void logTest() {
		
		LOGGER.info("info");
		LOGGER.error("error");
	}
}

 

java에서 추가해서 사용하니 아주 잘 나온다.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="org.apache.logging.log4j.LogManager" %>
<%@ page import="org.apache.logging.log4j.Logger" %>

<%
    Logger log = LogManager.getLogger(this.getClass());
    log.info("test");
%>

문제는 jsp였는데 java code 넣는 부분이라고 해서 java와 똑같이 넣으면 안된다.

public static final을 지워주고

getLogger메서드에 this.getClass()를 넣어주면 된다.

[2022-03-31 16:42:41] :: [INFO] org.apache.jsp.test.test_jsp >> test

그럼 이렇게 잘나온다. 

 

끝!


추가) properties 설정 or 옵션

 

로그레벨

FATAL > ERROR > WARN > INFO > DEBUG > TRACE
TRACE : 상세한 정보
DEBUG : 상세한 일반 정보
INFO : 일반 정보
WARN : 주의
ERROR : 일반에러
FETAL : 치명적인 에러

 

옵션

- %d : 로깅 이벤트가 일어난 날자(date)
- %p : 로깅 이벤트의 priority
- %t : 로깅 이벤트를 생성한 스레드 이름
- %c : 로깅 이벤트의 category
- %F : 로깅요청을 일으킨 파일 이름
- %L : 로깅요청을 일으킨 파일의 행번호
- %x : 로깅이벤트를 발생시킨 스레드에 관련된 내포검사항목
  (Nested Diagnostic Context : NDC)을 출력
- %C : 로깅요청을 일으킨 호출자의 완전한 클래스이름
- %M : 로깅요청을 일으킨 메소드
- %m : 메세지
- %n : 플랫폼 독립적인 개행문자
- %l : 소스코드의 위치정보를 출력한다. %C. %M(%F:%L) 의 축약형

 

 

Ref


http://nirmalbalasooriya.blogspot.com/2015/06/log4j2-logging-on-jsp-in-tomcat-7.html

 

Log4J2 logging on JSP (In tomcat 7)

In this post I will explain steps to enable log4J2 logging on JSP files in web project. From the same way you can add this logs in to Java c...

nirmalbalasooriya.blogspot.com

http://dveamer.github.io/java/Log4j2.html

 

Dveamer

현실에서 살고 있지만 이상에 대한 꿈을 버리지 못한 몽상가의 홈페이지 입니다. 개인적인 기록을 주 목적으로 하며 일상과 프로그래밍 관련 글을 포스팅합니다.

dveamer.github.io

https://isstory83.tistory.com/121

 

log4j.properties 설정

* 설정 준비 - log4j-1.x.xx.jar를 복사해서 eclipse/workspace/<프로젝트명>/WEB-INF/lib에 붙여넣기 - eclipse/workspace/<프로젝트명>/WEB-INF/src에 log4j.properties를 작성 - eclipse/workspace/<프로젝..

isstory83.tistory.com

 

728x90
반응형