【发布时间】:2016-07-27 13:08:33
【问题描述】:
我正在尝试使用 slf4j 配置 log4j 以在 weblogic 下运行并使用 web 模块和 ejb 管理 ear 应用程序的日志。虽然 web 模块在我配置的日志文件中打印消息,但 ejb 没有。好像ejb看不到配置文件,也没有初始化log4j。
耳朵有这样的结构:
--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
以及ear的APP-INF/classes文件夹下的配置文件(log4j.xml):
<?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模块查看配置文件还有什么需要配置的吗?
【问题讨论】:
-
你能解决这个问题吗?我有完全相同的问题。
-
我能够解决这个问题,只需在 ejb weblogic.xml 中添加
<wls:prefer-application-packages> <wls:package-name>com.oracle.foo</wls:package-name> </wls:prefer-application-packages>。希望对你有帮助
标签: jakarta-ee log4j ejb weblogic slf4j