我已经在log4j记录器上用ConsoleAppender创建了一个Logger。代码如下,
public class AppLogger{
static {
ConsoleAppender ca = new ConsoleAppender(new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN));
org.apache.log4j.Logger.getRootLogger().addAppender(ca);
}
public AppLogger(Class classname) {
logger = LoggerFactory.getLogger(classname);
}
public void debug(String message){
logger.debug(message);
}
...
...
}我没有使用log4j.properties文件,因为我不知道把它放在哪里。上面的代码运行良好,并在控制台上正常记录。现在,我想将其更改为与FileAppender一起使用。
我简单地更新了静态构造函数如下,
FileAppender fa = new FileAppender();
fa.setFile("d:/log.txt");
fa.setLayout(new PatternLayout(PatternLayout.DEFAULT_CONVERSION_PATTERN));
org.apache.log4j.Logger.getRootLogger().addAppender(fa);并在fa中加入ca。但现在我发现了这个错误,
Log4j:错误无输出流或文件设置为名为null的附录。
我不确定我遗漏了哪些属性来定义文件附录。
发布于 2015-01-30 14:59:39
您忘了激活选项:
FileAppender fa = new FileAppender();
fa.setFile("d:/log.txt");
fa.setLayout(new PatternLayout(PatternLayout.DEFAULT_CONVERSION_PATTERN));
fa.activateOptions(); \\ ← activate the options
org.apache.log4j.Logger.getRootLogger().addAppender(fa);方法OptionHandler#activateOptions()激活以前通过调用选项设置器而设置的选项。
https://stackoverflow.com/questions/28236007
复制相似问题