Ich versuche Log4j mit Slf4j zu konfigurieren, um unter Weblogic zu laufen und die Protokolle einer Ohr-App mit einem Web-Modul und einem ejb zu verwalten. Während das Webmodul die Nachrichten in der von mir konfigurierten Protokolldatei druckt, tut dies der ejb nicht. Es ist so, als würde der ejb die Konfigurationsdatei nicht sehen und log4j nicht initialisieren.Verwenden von log4j in einem Ohr unter Weblogic 12c
Das Ohr hat diese Struktur:
--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
Und die Konfigurationsdatei (log4j.xml) in der APP-INF/classes Ordner des Ohres:
<?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>
Aus der Dokumentation und andere Stackoverflow Fragen, die ich überprüft habe, muss die Konfigurationsdatei aus dem EJB-Modul gelesen werden, richtig? Ich habe auch überprüft, dass es keine andere Konfigurationsdatei in den Modulen gibt. Gibt es noch etwas mehr zu konfigurieren, damit das ejb-Modul die Konfigurationsdatei sehen kann?
Konnten Sie das auflösen? Ich habe genau das gleiche Problem. – donlys
Ich konnte dies einfach durch Hinzufügen von com.oracle.foo wls: paketname> wls: prefer-application-packages auflösen > 'in der ejb weblogic.xml. Hoffe es hilft –
xacy