log4j没有读取它的log4j.properties文件

时间:2015-08-13 14:30:09

标签: java maven logging log4j wildfly-8

在Maven项目中,我将log4j.properties文件放在src \ main \ resources目录中,这似乎是放入它的通常位置。但是它似乎没有读取它或者有错误我无法看到我的记录器没有打印DEBUG级别的消息(它确实打印了INFO级别的消息)并且也没有创建logs.log文件。 这是我使用的log4j.properties文件:

# Root logger option
log4j.rootLogger=DEBUG, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:/.../src/main/resources/META-INF/logs.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

我还尝试在运行配置中将路径传递给log4j.properties文件,但它也没有工作: -Dlog4j.configuration=file:D:/.../src/main/resources/log4j.properties 这个项目是通过一个不同的绑定项目启动的,所以我使用了整个文件路径,这可能是不正确的,因为我见过的所有例子都没有提供完整的路径。

我们用来运行应用程序的服务器是Wildfly 8.1.0,它有自己的log4j记录器,所以可能会以某种方式干扰?

这是我的拦截器应该创建日志的部分:

final static Logger logger = Logger.getLogger(RestInterceptor.class);
...    
if(e instanceof ApplicationException) {
        logger.debug(e.getMessage(), e);
        //TODO remove these when done testing
        logger.debug("debug is working");
        logger.info("info is working");
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }

然而,只有"信息正在运作"正在印刷。

3 个答案:

答案 0 :(得分:0)

您确定src \ main \ resources在您的构建路径上吗?

右键点击您的项目 - > Java构建路径[源选项卡]

确保资源文件夹位于构建路径上。 还要确保排除模式='**'

答案 1 :(得分:0)

好吧,所以我设法解决了这个问题。这是由Wildfly的记录器干扰我的。我在standalone.xml中添加了<use-deployment-logging-config value="false"/>行 但这还不够。在挖掘了一些之后我还发现并添加了以下行<add-logging-api-dependencies value="false"/>,它终于开始工作了。 虽然我对这个解决方案并不完全满意,但我觉得它总比没有好,也许它值得分享。

简而言之,在standalone.xml中添加它,如果您使用的是Wildfly 8,它应解决日志记录冲突:

<subsystem xmlns="urn:jboss:domain:logging:2.0"> <add-logging-api-dependencies value="false"/> <use-deployment-logging-config value="false"/> ... </subsystem>

答案 2 :(得分:-1)

更新spring版本。它对我有用。