有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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


共 (4) 个答案

  1. # 1 楼答案

    属性文件是根据应用服务器在类路径中找到jar的顺序从jar中提取的。现在没有办法确切地告诉jar要从哪个jar加载属性文件

    为了解决这个问题,大多数项目都包含了log4j。服务器类路径本身中的属性文件。这样,这个文件就是要加载的第一个属性文件,这就是日志代码得到的文件

  2. # 2 楼答案

    你应该看看log4j手册。“默认初始化过程”一节描述了log4j如何尝试查找初始化文件,并解释了匹配特殊配置的可能性(例如,通过设置系统属性log4j.configuration

    如果你不想做任何特殊的配置,你必须确保你的配置文件是在类路径上找到的第一个

  3. # 3 楼答案

    可能是因为蚂蚁。jar在类路径中位于您自己的jar之前。我假设把你的罐子放在类路径之前,然后放在axis ant中。罐子应该有用

  4. # 4 楼答案

    我很确定,但这可能是订单问题。无论哪个log4j。属性是第一个/最后一个会赢的(我必须检查一下)