我们写了这样一个简单的类:
import org.apache.log4j.Logger;
[...]
@Singleton
@Startup
public class ContactFormScheduler {
private static final Logger log = Logger.getLogger(ContactFormScheduler.class);
[...]
当我们启动服务器(WildFly 10.1.0)时,我们收到以下错误:
15:35:27,142 ERROR [stderr](ServerService线程池 - 58)log4j:警告找不到logger(com.test.ContactFormScheduler)的appender。
15:35:27,143 ERROR [stderr](ServerService线程池 - 58)log4j:WARN请正确初始化log4j系统。
任何提示?什么是初始化log4j的最佳方法?
在web.xml中:
<context-param>
<param-name>log4j-config-location</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
在jboss-deployment-structure.xml
中<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>
其他类正确记录。
由于 安德烈
答案 0 :(得分:0)
如果您将log4j排除在WAR/lib
目录中,请移除jboss-deployment-structure.xml
并将log4j.properties
移至WAR/WEB-INF/classes
WildFly,自动为您的部署配置log4j。
如果您更愿意使用自己的log4j版本,则仍需要将log4j.properties
移至WAR/WEB-INF/classes
目录,因为log4j无法从{{1}中读取任何内容}目录。