根据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
答案 0 :(得分:6)
这主要是传统和/或个人偏好的问题。我习惯的是在项目根目录中创建另一个源目录(例如config
或resources
)(src
和test
旁边),然后将log4j.properties
放在那里。您可以通过右键单击新创建的文件夹并选择构建路径 - >来完成此操作。用作源文件夹。您也可以选择指定一些包含/排除模式。
默认情况下,Log4j在类路径的根目录中查找属性文件。通过上面的设置,属性文件将被复制到输出目录,并且在开发过程中它将位于类路径的根目录中。
稍后在部署期间,log4j.properties
也会捆绑在jar / war文件中。您可能希望通过在运行时在类路径上指定备用配置文件夹来覆盖捆绑的属性。 (请参阅此其他question,并且docs关于订单条目优先于类路径)
答案 1 :(得分:4)
您需要将log4j.properties文件放在应用程序类路径上。
答案 2 :(得分:1)
正在正确读取log4j.properties文件,问题在于log4j.properties文件中的配置。将此行添加到log4j.properties的开头是否有任何区别(假设您的类文件中有一些日志记录语句)
log4j.rootLogger=DEBUG, dest1
答案 3 :(得分:0)
将log4j.properties放在项目的WEB-INF \ classes中。
将log4j-xx.jar放在WEB-INF \ lib see here for details
下