SyslogAppender的子类似乎记录了两次

时间:2012-02-15 12:09:52

标签: java log4j

我正在使用log4j-1.2.14。在日志记录类中,我已经将SyslogAppender子类化并覆盖了append()方法,主要是为了摆弄LoggingEvent信息。

问题是,只有一个“log”调用,但是子类appender有两次调用append()方法,然后将两条日志消息写入Syslog。任何人都可以告诉我为什么会这样,以及我只能实际记录一次消息(按预期)。

日志记录类的示例代码:

private static Logger syslogger = Logger.getLogger(LoggingManager.class);
syslogAppender = new NewSyslogAppender();

syslogAppender.setSyslogHost(SYSLOG_HOST);
syslogAppender.setThreshold(SYSLOG_PRIORITY);
syslogAppender.setFacility(SYSLOG_FACILITY);
syslogAppender.setLayout(new PatternLayout(SYSLOG_PATTERN));
syslogAppender.activateOptions();

syslogger.addAppender(syslogAppender);
syslogger.info(some string message);

SyslogAppender子类的示例代码(上面的日志类的私有类):

private class NewSyslogAppender extends SyslogAppender {

@Override
public void append(LoggingEvent event) {
// ...snip...create a new LoggingEvent with some of the old event information
super.append(newLoggingEvent);
}

提前致谢! 附:此记录器的任何log4j配置文件中都没有条目。 log4j配置文件具有使用控制台appender的根记录器。

0 个答案:

没有答案