NTEventLogAppender (библиотека уже загружена в другой ClassLoader) - PullRequest
1 голос
/ 05 июля 2011

У меня есть файл log4j.properties, как это в моем пакете src:

log4j.rootLogger=DEBUG, CA, EVA 

#Console Appender 
log4j.appender.CA=org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

#Event Viewer Appender
log4j.appender.EVA=org.apache.log4j.nt.NTEventLogAppender
log4j.appender.EVA.layout=org.apache.log4j.PatternLayout
log4j.appender.EVA.source=MySource
log4j.appender.EVA.layout.ConversionPattern=[%c][%l][%p][%thread]: %m%n

Я создаю регистратор на интерфейсе (LogInterface.java) следующим образом:

package components;

import org.apache.log4j.Logger;

public interface LogInterface {

    static final Logger logger = Logger.getLogger("MyLogger");

}

Я помещаю NTEventLogAppender.dll в:

C: \ Program Files (x86) \ IBM \ WID7_WTE \ runtimes \ bi_v7 \ java \ jre \ bin

Иногда я получаю следующую ошибку при возникновении исключения для журнала:

NTEventLogAppender (библиотека уже загружена в другой ClassLoader)

Как я могу решить эту проблему?

Спасибо

1 Ответ

1 голос
/ 12 июля 2011

Решением этой проблемы было размещение файла JAR log4j в:

Application_Server_Install_Path \ lib

В проект я добавил файл JAR log4j в путь сборки проекта в качестве переменной (опция добавления переменной)

Это решает ссылку JAR на IDE, единственное, что остается сделать - добавить предыдущую ссылку на файл JAR log4j в среду выполнения Websphere Application Server.

Для этого яПолучил доступ к консоли администрирования WAS и добавил предыдущий путь к файлу JAR log4j в:

Среда -> Общие библиотеки

Несмотря на то, что ни у кого, похоже, нет такой же проблемы, вот решение для подобных проблем в будущем

Спасибо

...