2011-02-02 61 views
1

我正在制作一个直接与系统日志数据一起工作的实用程序。它目前使用log4j将信息写入控制台。我需要一些机制将预定义格式的系统日志数据发送到另一台机器。这些数据不是当前实用程序如何操作的日志..它仍然记录到stdout用于其他目的。黑客Log4j发送自定义系统日志消息

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

回答

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