我正在使用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的根记录器。