Log4j折腾了半天就是无法输出到控制台。log4j.properties文件也到处放了,还是会产生please initialize the log4j system properly的错误。
于是决定在代码中配置一个简单的stdLogger,实现了基本的Log功能。
import org.apache.log4j.*;
public class Log {
public static Logger stdLogger=null;
static{
stdLogger=Logger.getLogger("stdout");
ConsoleAppender ca=new ConsoleAppender(
new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN),
"System.out");
stdLogger.addAppender(ca);
}
}
值得注意的是,在new ConsoleAppender的时候必须要有参数,要指定PatternLayout参数,否则就会报错:
ERROR No output stream or file set for the appender named [null].
原因是无参数的构造函数实际没有进行任何初始化操作。
这是ConsoleAppender的源码:
45 /**
46 * Constructs an unconfigured appender.
47 */
48 public Con