2016-07-27 3 views
0

Я пытаюсь настроить log4j с slf4j для запуска под weblogic и управлять журналами приложения уха с помощью веб-модуля и ejb. Пока веб-модуль печатает сообщения в файле журнала, который я сконфигурировал, ejb этого не делает. Это похоже на то, что ejb не видит файл конфигурации и не инициализирует log4j.Использование log4j в ухе под weblogic 12c

Ухо имеет такую ​​структуру:

--APP-INF 
    --LIB 
    --log4j-1.2.17.jar 
    --slf4j-api-1.7.5.jar 
    --slf4j-log4j12-1.7.5.jar 
    --classes 
    --log4j.xml 
--META-INF 
EJB.JAR 
WEB.WAR 

и конфигурационный файл (log4j.xml) в папке APP-INF/классы уха:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration PUBLIC 
    "-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> 
<log4j:configuration debug="true" 
    xmlns:log4j='http://jakarta.apache.org/log4j/'> 

     <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
      <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> 
      </layout> 
    </appender> 


    <appender name="file" class="org.apache.log4j.RollingFileAppender"> 
     <param name="append" value="false" /> 
     <param name="maxFileSize" value="1000KB" /> 
     <param name="maxBackupIndex" value="5" /> 
     <param name="file" value="/shared_ISILON_WLS/AppLogs/project/project.log" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n" /> 
     </layout> 
    </appender> 

    <appender name="fileSQL" class="org.apache.log4j.RollingFileAppender"> 
     <param name="append" value="false" /> 
     <param name="maxFileSize" value="1000KB" /> 
     <param name="maxBackupIndex" value="5" /> 
     <param name="file" value="/shared_ISILON_WLS/AppLogs/project/project_SQL.log" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n" /> 
     </layout> 
    </appender> 

    <logger name="es.project"> 
     <level value="INFO" /> 
     <appender-ref ref="file" /> 
    </logger> 
     <logger name="org.primefaces"> 
      <level value="INFO" /> 
      <appender-ref ref="file" /> 
     </logger> 
    <logger name="org.eclipse.persistence"> 
      <level value="INFO"/> 
      <appender-ref ref="fileSQL" />  
     </logger> 

</log4j:configuration> 

Из документации и других Вопросы проверки stackoverflow, которые я проверил, файл конфигурации должен быть правильно прочитан с модуля ejb? Я также проверил, что внутри модулей нет другого файла конфигурации. Что еще нужно настроить для модуля ejb, чтобы увидеть файл конфигурации?

+0

Вы смогли это решить? У меня точно такая же проблема. – donlys

+0

Мне удалось решить эту проблему, просто добавив ' com.oracle.foo 'в ejb weblogic.xml. Надеюсь, это поможет – xacy

ответ

0

Вы должны убедиться, что файл log4j.xml доступен в classpath для баннера EJB. Вы можете посмотреть манифест банки, чтобы убедиться, что он есть. Как только он появится в пути к классам, он будет загружен автоматически.

+0

Я добавил в manifest.mf из jjb jar: 'Class-Path: APP-INF/classes/log4j.xml', но без каких-либо результатов. Это все равно, чтобы отладить, что это происходит с log4j в ejb? – xacy

0

Добавление файла log4j.xml в каталог app.ear/APP-INF/classes для меня. Вы получаете систему? Может быть, есть еще один log4j.xml в пути к классам, который определяет регистратор для org.hiberante и записывает журнал где-то еще ...

Смежные вопросы