我正在将我的应用程序服务器从JBoss AS 7.1.1 Final迁移到JBoss EAP 6.2。但是,我遇到了Apache log4j 1.2.17和EAP 6.2的一些问题。
在AS 7.1.1中,除了在我正在Eclipse中工作的项目的构建路径中使用log4j.jar之外,我没有做任何其他事情。我想要的日志是在JBoss standalone.xml中定义的,每当我启动服务器时都会创建。我正在使用JAR文件,而不是WAR或EAR文件来部署我的应用程序。
现在迁移到EAP 6.2时,我试图在Eclipse结构中创建所有内容。 我将standalone.conf中的per-deployment设置设置为false,如下所示:
JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.as.logging.per-deployment=false"
我在项目src文件夹中创建了一个META-INF文件夹,其文件为jboss-deployment-structure.xml,其中包含以下内容:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<module name="com.log4j.mylog4j" export="true" />
</dependencies>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
我还将log4j.properties放在src文件夹中,其中包含rootlogger和所有单个记录器的定义。
但是,每当我尝试在我的应用程序中记录任何内容时,我都会收到警告:
log4j:WARN No appenders could be found for logger
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
非常感谢任何帮助。
答案 0 :(得分:0)
我发现了我的问题。我在eclipse中有多个项目,一个是日志项目,一个程序控制我的所有日志记录。所以我在日志项目中设置了META-INF。但是,所有日志调用都是在具有许多其他程序的另一个项目中进行的。我不得不在另一个项目中设置META-INF而不是日志项目。不知道为什么,但它摆脱了这个错误。