在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();
}
然而,只有"信息正在运作"正在印刷。
答案 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版本。它对我有用。