log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
이클립스 프로젝트를 진행했을 때 간혹 log4j:WARN No appenders could be found for logger이라는 메세지를 볼 수 있다.
해당 로그에 대한 출력을 도와주는 log4j의 설정 파일을 찾을 수 없다는 이야기다.
위와 같은 에러 해결을 위한 방법을 간략하게 요약해서 적어놓는다.
만약 프로젝트에 log4j가 없다면 아래 다운로드를 통해 라이브러리를 받아주길 바란다.
Log4j의 다운로드는 아래 링크를 통해 받을 수 있다.
http://commons.apache.org/proper/commons-logging/download_logging.cgi
압축받은 폴더를 열어보면 log4j가 .jar파일 형식으로 되어있기 때문에, 이클립스 프로젝트에서 라이브러리를 프로젝트에 추가하는 방법 = Build Path를 사용해서 프로젝트에 추가를 시켜주어야 한다.
프로젝트에 라이브러리를 추가했다면 log4j의 로그 출력의 설정을 정의하는 .properties 파일을 생성해주어야 한다.
생성하는 방법은 따로 없고 직접 텍스트 파일에 구성 설정 방법을 적자.
위치는 편하게 프로젝트 시작 위치로 잡으면 되고 따로 구성 설정이 있는 폴더에 옮겨놓아도 무관하다.
파일 이름은 log4j.properties로 고정한다.
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
# Root logger option
log4j.rootLogger=INFO, stdout
# Hibernate logging options (INFO only shows startup messages)
log4j.logger.org.hibernate=INFO
# Log JDBC bind parameter runtime arguments
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.type.descriptor.sql=trace
log4j.properties의 내용은 위와 같은데, 필자의 프로젝트는 hibernate log를 출력하기 위한 구성 설정이기 때문에 일반적인 프로젝트와는 조금 다를 수 있다는 점 참고하길 바란다.
혹시 몰라서 파일까지 첨부해 놓는다.
public static void main(String[] args) {
// TODO Auto-generated method stub
PropertyConfigurator.configure(System.getProperty("user.dir") + "\\log4j.properties");
new Main().Save3();
}
마지막으로 메인 시작점에 PropertyConfigurator에 log4j의 프로퍼티를 사용하겠다는 선언을 해놓는다.
메서드 안에 들어가는 인자는 파일 경로=Path이므로, 경로가 맞지 않으면 알맞게 설정해주자.
09:16:29,488 INFO Version:15 - Hibernate Annotations 3.3.0.GA
09:16:29,497 INFO Environment:514 - Hibernate 3.2.5
09:16:29,499 INFO Environment:547 - hibernate.properties not found
09:16:29,500 INFO Environment:681 - Bytecode provider name : cglib
09:16:29,504 INFO Environment:598 - using JDK 1.4 java.sql.Timestamp handling
09:16:29,534 INFO Configuration:1460 - configuring from file: hibernate.cfg.xml
09:16:29,643 INFO Configuration:1541 - Configured SessionFactory: null
09:16:29,668 INFO AnnotationBinder:398 - Binding entity from annotated class: org.power21.hibernate.data.Employee
09:16:29,684 INFO EntityBinder:420 - Bind entity org.power21.hibernate.data.Employee on table employee
09:16:29,705 INFO AnnotationBinder:398 - Binding entity from annotated class: org.power21.hibernate.data.Employeeentity
09:16:29,705 INFO EntityBinder:420 - Bind entity org.power21.hibernate.data.Employeeentity on table employeeentity
09:16:29,733 INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
로그가 잘 나온다.
'Java > 순수 Java' 카테고리의 다른 글
[Java] Eclipse 이클립스 크롬 연동하기(Web Browser 연동) (0) | 2020.03.13 |
---|---|
[Java] SWT Tree와 Map을 활용한 Directory 출력 예제 소스 (0) | 2020.03.12 |
[Java] SWT Tree 사용 예제 (0) | 2020.03.12 |
[Java] Reflection (0) | 2020.03.06 |
[Java] Property 파일(.properties) 생성 및 사용 (0) | 2020.03.05 |