log4j не выводит данные на определенные серверы Weblogic

Мы распространяем приложение, которое развертывается в виде набора файлов WAR на различных серверах WebLogic (9, 10 и 11) на сайтах различных клиентов. Эти приложения используют commons-logging и log4j. Он отлично работает везде, кроме определенного сайта, где наше приложение не ведет журналы. Этот сайт находится на 11g, и на нем установлено множество другого программного обеспечения Oracle (BPEL, OSB и т. Д.)

В нашем коде мы используем:

public class Foo {

private final static Log log = LogFactory.getLog(Foo.class);

    public void bar () {
        log.trace("bar called");
        ...

Поскольку мы хотим, чтобы клиенты могли адаптировать свою конфигурацию журналов, у нас есть папка конфигурации на сервере CLASSPATH:

CLASSPATH=/opt/app/domain_foo/foo_config/:....

В этой папке два файла для журналов, commons-logging.properties:

org.apache.commons.logging.Log org.apache.commons.logging.impl.Log4JLogger

И log4j.properties: (это упрощенный вариант, который имеет ту же проблему, фактический файл содержит 5 регистраторов с различными параметрами)

log4j.rootLogger=INFO, fileApp

# File appender
log4j.appender.fileApp=org.apache.log4j.RollingFileAppender
log4j.appender.fileApp.file=fooapp.log
log4j.appender.fileApp.maxFileSize=10240KB
log4j.appender.fileApp.maxBackupIndex=5
log4j.appender.fileApp.append=true
log4j.appender.fileApp.layout=org.apache.log4j.PatternLayout
log4j.appender.fileApp.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p %-70.70C %m%n

log4j.logger.be.foo=DEBUG

Файл fooapp.log создан (так что он смог найти файл свойств), но пуст. Я попытался проверить настройки журнала в Weblogic, но они кажутся одинаковыми на рабочих и неработающих серверах. Я скопировал CLASSPATH на свой сервер, и он все еще работает нормально.

Я действительно не знаю, где больше искать. Любые идеи ?


person Eric Darchis    schedule 10.09.2012    source источник
comment
Есть ли в вашем nohup.out сообщения об ошибках вроде этого: ERROR Попытка добавить в закрытое приложение с именем?   -  person Apostolos Emmanouilidis    schedule 12.09.2012
comment
Проверьте логи сервера ...   -  person Cris    schedule 14.09.2012
comment
Журналы сервера не содержат ничего особенного. Если я намеренно допущу ошибку в файле log4j.properties, я увижу эту ошибку в журналах сервера.   -  person Eric Darchis    schedule 21.03.2013
comment
Я изменил часть кода, чтобы использовать log4j напрямую, и получаю эти журналы. Так что проблема определенно связана с ведением журнала общего пользования. Я пытался установить -Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger в параметрах запуска сервера, но это не имеет никакого эффекта.   -  person Eric Darchis    schedule 21.03.2013


Ответы (1)


Это немного сложно, но ответ находится в среде с именем: APPLICATIONS_DIRECTORY, которая должна указывать на путь, по которому должен быть APPLICATIONS_DIRECTORY / fooapp.log. Вы можете получить расположение каталога из System.getenv ("APPLICATIONS_DIRECTORY");

person TA Nguyen    schedule 26.02.2014