黑客Log4j发送自定义SysLog消息

时间:2011-02-02 21:30:08

标签: java log4j

我正在创建一个直接使用syslog数据的实用程序。它目前使用log4j将信息写入控制台。我需要一些机制将预定义格式的syslog数据发送到另一台机器。此数据不是当前实用程序如何运行的日志。它仍然记录到stdout用于其他目的。

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

1 个答案:

答案 0 :(得分:4)

您可以在log4j中为记录器添加一个appender。

类似的东西:

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上的第一个答案,温柔!:))