NTEventLogAppender (библиотека уже загружена в другой ClassLoader)
У меня есть файл 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 ответ
Решением этой проблемы было размещение файла JAR log4j под:
Application_Server_Install_Path \ Lib
В проекте я добавил файл JAR log4j в путь сборки проекта в качестве переменной (опция добавления переменной)
Это решает ссылку JAR на IDE, единственное, что остается сделать, это добавить предыдущую ссылку на файл JAR log4j в среду выполнения Websphere Application Server.
Для этого я получил доступ к консоли администрирования WAS и добавил предыдущий путь к файлу JAR log4j под:
Окружающая среда -> Общие библиотеки
Несмотря на то, что, похоже, ни у кого нет такой же проблемы, вот решение для будущих подобных проблем
Спасибо