我正在制作一个直接用于syslog数据的实用程序。当前,它使用log4j将信息写入控制台。我需要某种机制将预定义格式的syslog数据发送到另一台计算机。此数据不是当前实用程序的运行方式的日志。它仍然记录到stdout中以用于其他目的。

我注意到SyslogAppender,它看起来很有希望。我宁愿直接控制log4j,而不使用log4j.properties文件。这可能吗?

最佳答案

您可以在log4j中将附加器添加到记录器。

就像是:

Logger root = Logger.getRootLogger();

SyslogAppender syslogAppender = new SyslogAppender();
syslogAppender.setSyslogHost(<host ip:port>);
syslogAppender.setThreshold(<required Level>);
syslogAppender.setLayout(new PatternLayout(<required pattern>));

root.addAppender(syslogAppender);


SyslogAppender还有更多选项,有关详细信息,请参见javadocs。

(我对StackOverflow的第一个回答是,请保持柔和!:))

09-16 04:52