javalog4j。未从jar中获取属性
我的服务器的类路径中有一个jar,其中包含log4j。jar根目录上的属性文件,用于记录代码。当jar中的代码运行时,代码的日志记录不会发生。当我使用java-Dlog4j分析问题时。调试选项我知道log4j正在加载log4j。轴ant的属性文件。jar(这也在我的类路径上)并使用它而不是我的jar属性文件
当我随后移除axis ant时。来自类路径my jars log4j的jar。立即选取属性文件并记录我的代码
有人能解释一下为什么我的log4j。axis ant时未加载属性fle。罐子在吗强>
令人惊讶的是,axis ant使用的是同一个罐子。classpath中存在的jar正在运行,并在另一台服务器中成功地进行了正确的日志记录。。这两台服务器都安装了相同的Java5版本和相同版本的Log4JJAR
# 1 楼答案
属性文件是根据应用服务器在类路径中找到jar的顺序从jar中提取的。现在没有办法确切地告诉jar要从哪个jar加载属性文件
为了解决这个问题,大多数项目都包含了log4j。服务器类路径本身中的属性文件。这样,这个文件就是要加载的第一个属性文件,这就是日志代码得到的文件
# 2 楼答案
你应该看看log4j手册。“默认初始化过程”一节描述了log4j如何尝试查找初始化文件,并解释了匹配特殊配置的可能性(例如,通过设置系统属性
log4j.configuration
)如果你不想做任何特殊的配置,你必须确保你的配置文件是在类路径上找到的第一个
# 3 楼答案
可能是因为蚂蚁。jar在类路径中位于您自己的jar之前。我假设把你的罐子放在类路径之前,然后放在axis ant中。罐子应该有用
# 4 楼答案
我很确定,但这可能是订单问题。无论哪个log4j。属性是第一个/最后一个会赢的(我必须检查一下)