slf4j与log4j,没有配置文件,但我可以看到文件中的日志

时间:2015-07-08 16:21:43

标签: logging log4j slf4j

使用带有log4j的slf4j处理项目(coa我可以看到所有需要的log4j jar文件。不使用loopback或java logging util。) 但我无法在任何地方找到任何配置文件(如xml文件)。 但我可以看到所有日志都转到DEBUG级别的文件。 我的问题是,这是log4j的默认行为吗?或者它必须存在于某处的配置文件? 如果我添加配置文件,哪里是正确的位置? 感谢。

1 个答案:

答案 0 :(得分:1)

默认配置是仅将错误记录到控制台。(log4j2)

rootlogger默认为调试,但只有控制台才能使用基本配置器(log4j1)

来自官方文件

  

当找不到默认配置文件log4j.properties和log4j.xml且应用程序不执行显式配置时,会发生这种情况。 log4j使用Thread.getContextClassLoader()。getResource()来定位默认配置文件,而不是直接检查文件系统。了解放置log4j.properties或log4j.xml的适当位置需要了解正在使用的类加载器的搜索策略。 log4j不提供默认配置,因为在某些环境中可能禁止输出到控制台或文件系统。

如果你看不到配置文件(最有可能是log4j.xml),可以使用DOMConfigurator类在代码中配置它,或者可以将配置文件指定为命令行参数(-Dlog4j.configurationFile我认为, log4j 1.x可能有所不同。

通常将配置文件放在classpath目录的根目录中,例如main类是src / com / Main.class,配置文件位于src /文件夹中。

我会搜索import语句import org.apache.log4j,如果你使用的是slf4j,除了自定义配置/日志记录外,不应该对这个包有任何引用