我试图通过公共日志记录使用log4j,如果log4j属性文件不是log4.properties,就会出现问题。我得到以下错误:log4j:警告没有为记录器(LogMePlease)找到任何附加程序。log4j :警告请正确初始化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,那么一切都正常。因此,问题是如何设置commons,以便为log4j.properties文件使用任意名称。
发布于 2009-10-05 23:48:22
文件commons-logging.properties
只从公用日志中读取,而log4j将在系统属性中查找log4j.configuration
。
因此,您必须在命令行中使用-Dlog4j.configuration=log4j-test.properties
将它们指定为JVM选项,或者必须在第一次调用任何日志方法之前调用System.setProperty()
(这通常很难实现)。
注意:如果可以的话,可以使用XML log4j.xml
;它对于配置log4j来说更加简单和强大。
发布于 2013-10-10 10:20:00
您需要将协议添加到系统属性值的前面,如:-Dlog4j.configuration=file://log4j-test.properties
如果没有协议,它将在类路径中查找。
发布于 2014-07-31 01:08:28
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
在日志实例之前设置log4j.properties。
System.setProperty("log4j.configuration", "log4j.properties");
https://stackoverflow.com/questions/1524109
复制相似问题