我正在创建一个直接使用syslog数据的实用程序。它目前使用log4j将信息写入控制台。我需要一些机制将预定义格式的syslog数据发送到另一台机器。此数据不是当前实用程序如何运行的日志。它仍然记录到stdout用于其他目的。
我注意到了SyslogAppender
,看起来很有希望。我更喜欢直接控制log4j,而不是使用log4j.properties文件。这可能吗?
答案 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上的第一个答案,温柔!:))