본문 바로가기

개발/JAVA

[JAVA] log4j의 초간단 사용법 - 날짜별, 패키지(클래스)별, 파일생성

반응형


 

1. Log4J 등록 및 log4j.properties 설정

Log4J 다운로드 : http://logging.apache.org/log4j/1.2/download.html

현재 최신버전은 apache-log4j-1.2.15.zip 을 다운로드 받아 압축을 푼 후 

apache-log4j-1.2.15.jar 파일을 사용할 프로젝트에 등록하면 된다

 

1) Log4J 라이브러리 등록

방법1) 생성한 프로젝트에만 적용할 경우

프로젝트에 lib 디렉토리를 생성후 apache-log4j-1.2.15.jar 를 넣고 classpath 에 추가

==> 생성한 프로젝트(Log4jEx01이라는 프로젝트 임) 선택 후 오른쪽 마우스를 클릭

       하여 properties 의 Java Build Path 를 선택후 lib 디렉토리 밑에 jar 파일을

       선택하면 프로젝트에서 사용할 수 있도록 등록된 아래와 같은 화면을 확인 할 수 있다

 

 

방법2) 이클립스에서 생성하는 모든 프로젝트에 log4j 를 사용하려면 이크립스에서 라이브러리를 등록

==> 이클립스에서 windows --> preperence --> Java --> Build Path --> User Libraries

       선택 후 New 버튼 클릭해서 새로운 User Library 를 생성 

 

==> 등록된 User Libraries 를 선택 후 jar 파일을 등록

 

==> log4j-1.2.15.jar 파일을 선택 후 OK 버튼을 클릭하면 이클립스의 .meta 파일에 lo4j의

      라이브러리가 등록된다

 

==> 생성한 프로젝트(Log4jEx01이라는 프로젝트 임) 선택 후 오른쪽 마우스를 클릭하여

      properties 의 Java Build Path 를 선택후 Libraries 선택 후 Add Library 를 선택하여

      위에서 추가한 User Library 를 선택한다.

 

==> 프로젝트에 log4j 라이브러리를 사용하도록 준비된 상태를 아래와 같이 확인

        

 

[TIP] jre/lib/ext 에 넣고 써도 되긴 하지만, appender 관련 경고메시지가 뜬다고 하니 위와 같이 유저라이브러리처럼 필요할 때 마다 삽입하는것도 괜찮을 듯하다

 

다음은 Log4j.properties 생성 및 설정을 확인해 보자

log4j 의 설정파일은 log4j.properties, log4.xml, java source 로 하는 방법이 있으니

properties 가 가장 사용하기 쉽고 직관적이라... 이를 많이 활용하는 편이다

 

2) log4j.properties 생성 및 패스설정

이클립스의 File --> New --> File을 선택하고 파일이름을 log4j.properties 로 생성한다

파일생성 후 설정정보를 다음과 같다. 일반적으로 로그는 console 과 logfile 로 쌓는다

(log4j 는 메시지를 콘솔,텍스트파일, html파일, xml 파일, 이메일등으로 전송가능하다.)

 

# Log4j Setting file
# priority = DEBUG < INFO < WARN < ERROR < FATAL

log4j.rootLogger = DEBUG, console, dailyfile
# log level and appender
#log4j.logger.com.mudchobo=DEBUG, console, dailyfile
#log4j.logger.com.mudchobo.LoggerTest2=DEBUG, console

log4j.appender.console.Threshold = INFO
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d][%-5p](%F:%L) - %m%n

 

log4j.appender.dailyfile.Threshold = DEBUG
log4j.appender.dailyfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyfile.File=./log/logfile.log
log4j.appender.dailyfile.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyfile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyfile.layout.ConversionPattern=[%d][%-5p](%F:%L) - %m%n

 

위 설정에 대한 정보는 별도로 Log4j 설정정보를 통해 공부하기를 바란다

 

생성한 log4j.properties 패스를 설정한다.

[방법1] 디폴트 패기지 생성

생성한 properties 파일은 프로젝트의 디폴트 패키지에 넣으면 별도의 패스설정 없이 프로그램이

수행시 자동으로 연결되지만, 프로젝트에 따라서 이런 properties 파일은 별도의 디렉토리에 관리할 수 도 있다. 이럴경우 properties 파일이 들어간 디렉토리를 디폴트 패키지로 만들어 주면 된다.

아래의 경우는 conf 디렉토리를 새로 만들고 거기에 log4j.properties 파일을 두고 conf 디렉토리를

디폴트 패키지로 설정한 예이다.

 

[방법2] PropertyConfigurator 로 패스설정

메인소스 에서 아래의 코드를 추가한다

import org.apache.log4j.PropertyConfigurator;

PropertyConfigurator.configure(log4j.properties");

 

[TIP] 위와 같이 프로그램에서 인지하는 디렉토리에 properties 파일을 두지 않으면 다음과 같은

         에러가 발생한다.

         log4j:WARN No appenders could be found for logger (com.sunsuk.HelloWorld).
         log4j:WARN Please initialize the log4j system properly.


 

2. 이클립스에 Log4E 이클립스 플러그인 설치

그런뒤에 이제는 이클립스 플러그인 중 Log4E 를 이용하여 Log4j 를 사용해 보도록 한다

(Log4E 플러그인은 이클립스의 업데이트 메뉴를 이용하여 다운받는다. Pro버전은 45일간 무료이나, Pro버전이 아닌것을 사용해도 무방하다고 함)

 

Log4E 다운로드 url = http://log4e.jayefem.de/update

  

 

 

설치 완료 후 이클립스가 재 시작되면 설치가 완료 된 것이다

설치가 되었는 확인해 본다

 

 

3. Log4E 사용하기

먼저 단순하게 Hello World 를 찍어내는 클래스를 만든다

이 소스에서 Lob4J 를 이용하려면 우선 마우스를 아무곳에 가져다 대고 오른쪽 버튼을 클릭하여 그곳에서 Log4E --> Declare Logger 를 선택하면 Logger 가 자동으로 선언된다

 

 

이렇게 logger 가 생성됩니다.

다시 여기서 마우스 오른쪽 클릭 후 Lob4E --> Log This Class 를 선택하게 되면 클래스의 처음과 마지막에 로깅문이 추가된다.

 

 선택에 따라 메소드에만 혹은 커서가 위치한 곳에만 로깅문이 삽입이 가능하다

(debug 문이 if(logger.isDebugEnabled()) 문 안쪽에 위치하기 않기를 원한다면 Log4E 옵션의 profile->Statements 부분의 Embed isDebugEnabled() statements 부분의 체크를 해제)

 

이제 System.out 문을 이용하여 디버그 하였던 구문들을 전부 로깅문으로 바꾸보도록 하자

마우스 오른쪽 버튼을 눌러서 Log4E -> Substitute System.out's For This Class 를 선택하자

System.out.println 구문이 logger.debug 로 바뀐것을 확인 할 수 있다

(if문이 제거된 것은 위에 쓴것처럼 옵션을 조정하면 됨)

 

반응형

자바스크립트를 허용해주세요.
[ 자바스크립트 활성화 방법 ]
from Mohon Aktifkan Javascript!