【问题标题】:commons-logging and log4j properties filecommons-logging 和 log4j 属性文件
【发布时间】:2009-10-06 07:39:07
【问题描述】:

我正在尝试通过 commons-logging 使用 log4j,如果 log4j 属性文件不称为 log4.properties,则会出现问题。 我收到以下错误: log4j:WARN 找不到记录器 (LogMePlease) 的附加程序。 log4j:WARN 请正确初始化log4j系统。

我的代码很简单:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class LogMePlease 
{
static Log l = LogFactory.getLog(LogMePlease.class);

public static void main(String [] args)
{
    l.warn("Hello World!");
}
}

在我的课程路径中,我有: commons-logging.properties 文件,其中包含以下条目

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
log4j.configuration=log4j-test.properties

和 log4j-test.properties 文件

当我运行这段代码时,我得到了

log4j:WARN No appenders could be found for logger (LogMePlease).
log4j:WARN Please initialize the log4j system properly.

如果我将 log4j-test.properties 文件重命名为 log4j.properties - 那么一切正常。 所以,问题是如何设置公共日志记录以使用 log4j.properties 文件的任意名称。

【问题讨论】:

    标签: java log4j apache-commons-logging


    【解决方案1】:

    文件commons-logging.properties 只能从公共日志中读取,而log4j 将在系统属性中查找log4j.configuration。

    因此,您必须在命令行上将它们指定为 -Dlog4j.configuration=log4j-test.properties 作为 JVM 选项,或者必须在首次调用任何日志记录方法之前调用 System.setProperty()(这通常很难实现)。

    注意:如果可以,请使用 XML 配置 log4j.xml;配置 log4j 更加简单和强大。

    【讨论】:

      【解决方案2】:

      您需要将协议添加到系统属性值的前面,如下所示:-Dlog4j.configuration=file://log4j-test.properties

      如果没有协议,它将在类路径中查找。

      【讨论】:

        【解决方案3】:

        jul - commons-logging,它喜欢你的情况。

        org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
        #org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
        #org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
        org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
        

        在 Log 实例之前设置 log4j.properties。

        System.setProperty("log4j.configuration", "log4j.properties");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-04-08
          • 1970-01-01
          • 2023-03-31
          • 1970-01-01
          • 1970-01-01
          • 2014-04-16
          • 1970-01-01
          相关资源
          最近更新 更多