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

是否可以使log4j显示它用来配置自身的文件?

邢承弼
2023-03-14
问题内容

是否可以使Log4J显示其用于配置的文件的完整路径?

背景

我与log4j有爱恨交织的关系。在好的时候,它很棒,但是当它不起作用时,它可能是最难调试的事情之一。我管理应用程序中的所有日志记录。因此,我对日志记录和手册中定义的默认初始化过程非常熟悉。
不过,似乎每隔几周,记录就会中断,我花 了很多 时间来解决问题。

这次,它被严重破坏了。每个地方的每个日志语句都被转储到控制台中,我不知道为什么。上周使用我的log4j.xml文件的相同代码库突然使用了其他配置。没有明显的变化。我唯一的猜测是,一些依赖关系发生了变化,我怀疑Mavenhtml" target="_blank">下载了一些邪恶的JAR,破坏了一切。

如果我能弄清楚 Log4J在启动时决定使用哪个配置文件 ,则可以轻松解决此问题和大多数其他问题。

摘要

有什么方法可以告诉Log4J打印用于配置的文件?或者,是否有办法中断正在运行的应用程序并使用调试器回答此问题(可能带有表达式或检查变量)?


问题答案:

是的,只需将其添加log4j.debug到JVM系统变量即可。例如:

java -Dlog4j.debug -cp ... some.class.name

Log4j然后将输出类似以下内容:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@1f7182c1.  
log4j: Using URL [file:/C:/Users/matt/workspace/projectname/target/test-classes/log4j.xml] for automatic log4j configuration.  
log4j: Preferred configurator class: org.apache.log4j.xml.DOMConfigurator  
log4j: System property is :null  
log4j: Standard DocumentBuilderFactory search succeded.  
log4j: DocumentBuilderFactory is: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl  
log4j: debug attribute= "null".  
log4j: Ignoring debug attribute.  
log4j: reset attribute= "false".  
log4j: Threshold ="null".  
...

作为参考,请参见手册和FAQ。



 类似资料:
  • 问题内容: 如文档所述,您可以使用可选参数调用webdriver.FirefoxProfile()来指向浏览器要使用的特定配置文件的目录。我注意到运行此命令花了很长时间,因此当我查看代码时,似乎正在复制指定的配置文件问题是,复制配置文件需要很长时间(大约> 30分钟,没有耐心等待它完成。) 我正在使用用户脚本和selenium的混合为我做一些自动化,因此每次想测试我的代码时都要设置一个新的配置文件

  • 这是错误的方法/代码吗?如果你能提出更好的方法/代码,那就太好了。

  • 问题内容: 这是我的代码,我基本上只是为最常见的侦听器做了一个测试器,以后我可能会在以后的项目中使用它,主要的问题是在底部的键侦听器中,我试图重新显示框架,但我认为只是无法做到这一点,请帮助ps:不知道为什么进口不正确。 } 问题答案: 可见组件可以具有键盘焦点,并且可以接收键盘和其他输入事件,但是不可见组件不能具有焦点,也不能接收输入事件。使框架不可见时,它停止接收输入事件,包括所有要添加的组件

  • 问题内容: 是否可以配置GET方法以读取可变数量的URI参数并将其解释为可变参数(数组)或集合?我知道查询参数可以读取为列表/设置,但在我的情况下我无法使用它们。 例如: 提前致谢 问题答案: 如果我正确理解了您的问题,则注释可以采用正则表达式来指定路径组件列表。例如,类似: 还有一个更广泛的例子在这里。

  • 我正在写一个jar,打算与Spring和Ehcache一起使用。Spring要求为每个元素定义一个缓存,所以我计划为jar定义一个Ehcache,最好是作为jar中的一个资源,可以导入应用程序的主要Ehcache配置。然而,我对示例Ehcache配置文件的阅读和我的谷歌搜索并没有找到任何导入子Ehcache配置文件的方法。 有没有办法导入一个子Ehache配置文件,或者有没有其他方法来解决这个问题

  • 问题内容: 我想平稳地向下滚动。我不想为此写函数-特别是如果jQuery已经有一个函数。 问题答案: 您可以只使用该属性,如下所示: