我目前正在使用 Syslog4j 0.9.46 来处理 syslog UDP 消息。我用它从命令行发送它们,现在我必须以某种方式接收它们。为此,我使用以下代码:
SyslogServerIF server = SyslogServer.getInstance("udp");
server.getConfig().setHost("127.0.0.1");
server.getConfig().setPort(514);
server.initialize("udp", server.getConfig());
server.run();
Thread.sleep(60*1000);
显然这还不够,或者我做错了什么。要发送对 jar 执行的 syslog 消息命令:
java -jar syslog4j-0.9.46.jar -h 127.0.0.1 -p 514 udp
我知道它们被正确发送,因为运行以下代码可以让我接收它们:
SyslogServer.main(new String[]{"-h", "127.0.0.1", "-p", "514", "udp"});
我在 Syslog4j 0.9.46 文档中检查了以下术语SyslogServerIF
:AbstractSyslogServer
和UDPNetSyslogServer
. 它们中的每一个都只包含返回值、参数和方法抛出的内容,没有任何描述。我还在http://www.syslog4j.org/上搜索了常见问题解答和提供的示例,但没有一个是关于服务器的。
所以我的问题是。如何让 UDP syslog 服务器运行而无需调用 main 方法SyslogServer
?我不使用任何自定义处理程序。