2

根据 log4j 手册,我应该把 log4j.properties 放到 src 文件夹中。我将此文件复制到我认为会影响 log4j 的所有可能的地方。但是,这不起作用。

TestEM 类包含许多单元测试功能(我使用 testng)。我运行这些测试函数之一,它引用了 feedback.strategy 包中的一个类。

我的日食项目

这是 log4j.properties 文件的内容:

#log for class1
log4j.category.Demo1=DEBUG, dest1
log4j.appender.dest1=org.apache.log4j.FileAppender
log4j.appender.dest1.File=C:/Users/Asus/workspace/FeedbackProcess/logs/class1.log
log4j.appender.dest1.layout = org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern= %d %p [%t] (%c) \u2013 %m%n
4

4 回答 4

6

这主要是一个惯例和/或个人喜好的问题。我习惯的是在项目根目录(和旁边)创建另一个源目录(例如或)然后config将其放置在那里。这可以通过右键单击新创建的文件夹并选择Build Path -> Use as Source Folder 来完成。您也可以选择指定一些包含/排除模式。resourcessrctestlog4j.properties

默认情况下,Log4j在类路径的根目录中查找属性文件。通过上述设置,属性文件被复制到输出目录,并且在开发过程中它将位于类路径的根目录中。

在部署的后期,它log4j.properties也会被捆绑在 jar/war 文件中。您可能希望通过在运行时在类路径上指定一个备用配置文件夹来覆盖捆绑的属性。(请参阅this other question和有关订单条目的文档优先于类路径)

于 2013-03-20T14:03:58.860 回答
4

您需要将 log4j.properties 文件放在应用程序类路径中。

于 2013-03-20T13:48:55.930 回答
1

也许文件 log4j.properties 被正确读取,问题出在 log4j.properties 文件中的配置上。将此行添加到 log4j.properties 的开头是否有任何区别(假设您的类文件中有一些日志记录语句)

log4j.rootLogger=DEBUG, dest1
于 2013-03-28T13:35:54.710 回答
0

将 log4j.properties 放在项目的 WEB-INF\classes 中。

将 log4j-xx.jar 放在 WEB-INF\lib 下 查看详细信息

于 2013-03-20T13:53:04.627 回答