2013-03-20 97 views
2

根据log4j手册,我应该将log4j.properties放到src文件夹中。我将这个文件复制到了所有可能会影响log4j的地方。但是,这不起作用。log4j.properties,它放在哪里

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

My eclipse project

这里是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 
+1

放置在应用类路径 – 2013-03-20 13:47:52

+0

这是一个[复制](任何区别HTTP ://stackoverflow.com/questions/5081316/where-is-the-correct-location-to-put-log4j-properties-in-an-eclipse-project)。 – 2013-03-20 14:27:38

+0

@ GJ13:您的评论是正确的。问题是我的项目中没有像Demo4那样的类作为log4j.category.Demo1。当我将其更改为我的项目中的特定课程时,它会起作用。你的解决方案也可以。所以请让它成为答案,以便我可以将其标记为正确。 – v4r 2013-03-20 23:12:24

回答

1

也许文件log4j.properties正在被正确读取,问题在于log4j.properties文件中的配置。是否加入这行来log4j.properties的开头做(假设你是在你的类文件的一些日志语句)

log4j.rootLogger=DEBUG, dest1 
4

你需要把log4j.properties文件的应用程序类路径。

0

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

看跌的log4j-xx.jar LIB see here for details

6

这主要是惯例和/或个人喜好的问题。我习惯的是在项目根目录(srctest旁边)创建另一个源目录(例如configresources),然后在那里放置log4j.properties。这可以通过右键单击新创建的文件夹并选择构建路径 - >用作源文件夹来完成。您也可以选择指定一些包含/排除模式。

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

后来在部署期间,log4j.properties也会捆绑在jar/war文件中。您可能希望通过在运行时指定类路径上的替代配置文件夹来覆盖捆绑的属性。 (请参阅其他questiondocs关于订单条目优先于类路径)