当前位置: 首页 > 面试题库 >

未从jar拾取log4j.properties

卢枫涟
2023-03-14
问题内容

我在服务器的类路径中有一个jar,在jar的根目录中包含log4j.properties文件,用于记录代码。当jar中的代码运行时,不会记录该代码。当我使用
java -Dlog4j.debug 选项分析问题时,我知道log4j正在加载 axis-ant.jar
的log4j.properties文件(这也在我的类路径中),并使用它而不是jar的属性文件。

当我随后从类路径中删除axis-ant.jar时,立即选择了jars log4j.properties文件,并记录了我的代码。

有人可以解释为什么在存在axis-ant.jar时为什么不加载我的log4j.properties文件吗?

令人惊讶的是,在类路径中存在与axis-ant.jar相同的jar,并且在另一台服务器中成功运行了正确的日志记录。这两个服务器均安装了相同的Java
5版本和相同版本的log4j jar


问题答案:

您应该看一下log4j手册。“默认初始化过程”部分描述了log4j将如何尝试查找初始化文件,并说明了匹配特殊配置的可能性(例如,通过设置system属性log4j.configuration)。

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



 类似资料:
  • 我对HTML字体了解不多,我正在尝试更改所有元素的字体,而不必每次都指定一个类或样式。生成的HTML没有更改字体。 我的HTML(与Bootstrap一起使用)只是 并且我的样式表包含 我在样式表中更改了按钮的其他内容,并且它们被拾取,这样我就知道找到了样式表。 那我做错了什么?

  • 我正在将一个庞大的基于Spring Boot1.x的项目升级到Spring Boot2.2。旧版本使用的是LiquiBase3.5,当前的升级分支使用的是LiquiBase3.8。 主changelog文件具有以下结构: LiquiBase的属性读取系统在3.5和3.8之间有变化吗? 作为变通方法,我使用这里定义的方法:https://reflectoring.io/database-migrat

  • 因此,我在eclipse中创建了一个java应用程序,并使用javafx,然后将其导出到一个可运行的jar文件中。但是,当我运行我的。jar文件时,它会给出找不到我的图像的错误。当我在Eclipse内运行时,它工作得非常好。 在UserPane中,我有一个函数将图像名作为“title”并返回ImageView: 我尝试过一些解决方案,但它不会在Eclipse中运行。我需要它在eclipse和.ja

  • 我有一个Spring应用程序在独立的JBoss EAP 6.2中运行(带有嵌入式HornetQ提供程序)。 消息被成功地放在队列中(我可以在jboss eap-6.2\独立\data\MessagingJournal\hornetq-data-1.hq中看到它们,因为队列是持久的),但不会被侦听器拾取(侦听器中的断点不会被命中)。我怀疑配置中缺少或错误的东西,但看不出是什么。JBoss启动时没有任

  • 我正在将构建从Ant迁移到Maven。Ant构建用于编译“代码生成器”,执行这个“代码生成器”,它生成了一组Java和C代码。然后,它将生成的Java代码与其他一些代码一起编译,生成一个jar。 我已经在Maven中很容易地复制了这一点,当我从命令行运行时,它工作得很好,但Eclipse抱怨并给了我一个与pom文件相关的错误 无法在超文本传输协议中找到{group.id}:{artifact.id

  • 我目前开始编写一个可以加载不同游戏的棋盘游戏游乐场。我将这些游戏存储在名为config.txt的文件中,但我无法访问它。首先,我从我最喜欢的文件方法开始: 但当我建造的时候。jar文件,它停止工作。因为显而易见的原因。所以我四处看看,发现了关于使用getResourceAsStream(String s)方法的建议。因此,我将代码更改为以下方式: 但在这里我被卡住了。无论我如何调整文件地址(尝试了