저는 Log4j
을 처음 사용합니다. Java에 익숙합니다.Logger4j에서 ExceptionInInitiaizerError를 throw합니다.
나는 Log4j
앱을 실행하는 작은 예제를 작성했습니다.
package com.log;
import org.apache.log4j.Logger;
public class Log4jExample {
static Logger log = Logger.getLogger(Log4jExample.class.getName());
public static void main(String[] args) {
log.debug("Hello, this is a debug message.");
log.info("Hello, this is an info message.");
}
}
는 그리고 이것은 내가 수동으로 $JAVA_HOME/jre/lib/ext/
디렉토리에 만들어 내 log4j.properties
파일입니다.
# Define the root logger with appender X
log = /Users/aditya/Desktop/log4j
log4j.rootLogger = DEBUG, FILE
# Set the appender named X to be a File appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for X appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
내가 같은 코드를 실행하고
는 Mac OS X 오전 :
javac com/log/Log4jExample.java
java com.log.Log4jExample
그러나 이것은 내가 무엇을 얻을 수 있습니다.
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.ClassCastException: org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext
at org.apache.log4j.Logger.getLogger(Logger.java:37)
at com.log.Log4jExample.<clinit>(Log4jExample.java:13)
내가 뭘 잘못하고 있니? 도와주세요.
클래스 경로에 어떤 로깅 JAR 파일이 있습니까? 어떻게 든'log4j' 클래스보다는'slf4j' 클래스를 만드는 무언가를 호출 한 것 같습니다. 일반 log4j JAR 파일을 사용하는 경우에는 발생하지 않습니다. –
나는 log4j 라이브러리를 다운로드하고 내 $ JAVA_HOME/jre/lib/ext 디렉토리에 붙여 넣었다. –
어떤 것. 어디에서 가져 왔니? ** ** ** ** 정확해야합니다. –