我正在使用log4j进行记录。同时我也使用JXL来读/写Excel文件
但是,不是将日志写入log4j logger文件,而是写入jxl.log
文件。
有什么问题?
答案 0 :(得分:1)
您似乎一直在使用jxl-2.6.3.jar
或类似版本。
Log4j
会在类路径中选择具有默认文件名(即log4j.xml
或log4j.properties
)的第一个配置文件。由于jxl-2.6.3.jar包含log4j.xml
,您最终将所有内容打印到jxl.log
log4j.xml
处理这类问题的最佳方法是使用-Dlog4j.debug
JVM参数运行应用程序。这将在log4j初始化时打印几行代码。
log4j: Using URL [jar:file:/C:/YourApp/WEB-INF/lib/jxl-2.6.3.jar!/log4j.xml] for automatic log4j configuration.
log4j: Preferred configurator class: org.apache.log4j.xml.DOMConfigurator
...{Blah Blah Blah}
有很多方法可以解决这个问题。
jxl
的{{1}} newer versions。log4j.xml
(脏解决方案)中删除log4j.xml
。jxl-2.6.3.jar
。这至少可以确保jxl-2.6.3.jar中的-Dlog4j.configuration=log4j.properties
不会被使用。 (但是如果另一个jar与log4j.properties同名?)。log4j.xml
文件重命名为log4j.properties
并添加VM参数log4j-yourApp.properties
这肯定会有所帮助,这就是应该如何避免这种情况。有关Log4j here
的更多详细信息