2012-09-13 41 views
9

Tôi có một lớp java tạo bộ nạp lớp tùy chỉnh dựa trên bộ nạp lớp javassist khi khởi động và sau đó chạy lớp chương trình thực. Tôi nhận được lỗi sau:Cấu hình org.apache.log4j.ConsoleAppender với trình nạp lớp tùy chỉnh

log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a   
"org.apache.log4j.Appender" variable. 
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
log4j:ERROR [[email protected]] whereas object of type 
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by 
[[email protected]]. 
log4j:ERROR Could not instantiate appender named "stdout". 

Vấn đề có liên quan đến thực tế là một đối tượng được tạo ra bởi classloader gốc trong khi khác được tạo ra bởi các tùy chỉnh một.
Có cách nào để giải quyết lỗi này không?

Cảm ơn trước,
Avner

Trả lời

16

hãy cố gắng thiết lập -Dlog4j.ignoreTCL = true, hy vọng nó sẽ giúp. một vấn đề simular about log4j

+1

Làm việc như một nét duyên dáng ;-) Cảm ơn –

0

Thêm log4j.ignoreTCL trong maven tomcat cắm cấu hình như trong dưới

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
     <port>${local.server.port}</port> 
     <update>true</update> 
     <systemProperties> 
     <log4j.configurationFile>${user.dir}\conf\log4j2.xml</log4j.configurationFile> 
     <log4j.ignoreTCL>true</log4j.ignoreTCL> 
     <java.util.logging.manager>org.apache.logging.log4j.jul.LogManager</java.util.logging.manager> 
     </systemProperties> 
     <contextReloadable>true</contextReloadable> 
    </configuration> 
</plugin> 
Các vấn đề liên quan