我正在制作一个直接用于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的第一个回答是,请保持柔和!:))