有 Java 编程相关的问题?

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

java log4j属性更改未反映在Eclipse中

这是我在将项目签入SVN存储库之前用于项目的log4j文件。这很好,我在Eclipse的控制台上看到了日志信息

log4j.rootLogger=debug, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%d - %p %t %C.%M (%F:%L) %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=x.log

 log4j.appender.R.MaxFileSize=100KB
 # Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %p %t %C.%M (%F:%L) %m%n

我从存储库中签出了我的项目,并通过在log4j属性文件中进行此更改禁用了日志记录

#log4j.rootLogger=debug, stdout, R
log4j.rootLogger=OFF

但是这个更改并没有像预期的那样起作用,我仍然在Eclipse的控制台上获得了日志信息。当我在终端上交叉检查时,很好,我没有在终端上获得日志信息。Eclipse有问题吗?我在这个问题上搜索了很多,没有找到任何解决方案。帮我找出这里出了什么问题


共 (2) 个答案

  1. # 1 楼答案

    这里有两个可能的问题:

    1. 配置应该是(告诉它没有附加器,而不是寻找非附加器):

      log4j。rootLogger=

    2. Eclipse正在使用该文件的旧版本,可能是因为您在Eclipse之外编辑了该文件。只需刷新文件(右键单击/刷新),它就会按预期工作

  2. # 2 楼答案

    使用-Dlog4j.debug属性输出log4j内部调试信息,并查看启动时真正加载的日志配置

    您将获得如下信息(对于基于xml的配置,但我认为您将获得与属性文件配置类似的信息):

    log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@11b86e7.
    log4j: Using URL [file:/C:/develop/workspace/foobar/target/classes/log4j.xml] for automatic log4j configuration.
    log4j: Preferred configurator class: org.apache.log4j.xml.DOMConfigurator
    

    'log4j: Using URL ...'行来自LogManager