为什么syslog4j会忽略某些消息?

时间:2015-02-03 14:45:07

标签: syslog syslog4j

我使用syslog4j(2011年的当前版本)来接收系统日志消息。显然其中一些没有被处理,我可以看到他们使用wireshark离开原始服务器并到达运行syslog4j程序的服务器。

不幸的是我仅限于使用带有udp的syslog,因为这是发件人支持的唯一配置。但正如我可以看到wireshark中的数据包,这似乎不是导致问题的原因。

我的程序如下:

SyslogServerIF syslogServer = SyslogServer.getInstance("udp");

SyslogServerConfigIF syslogServerConfig = syslogServer.getConfig();
syslogServerConfig.addEventHandler( new MyEventHandler());
SyslogServer.getThreadedInstance("udp");

while (true) {
    SyslogUtility.sleep(1000);
}

Handler的My(缩写)版本是这样编写的:

public class MyEventHandler implements SyslogServerSessionEventHandlerIF {
  public void event(Object session, SyslogServerIF syslogServer,
            SocketAddress socketAddress, SyslogServerEventIF event) {
    System.out.println("event.msg : " + event.getMessage());
    System.out.println("event.date: " + event.getDate());
  }
}

应用程序没有高负载(5分钟内大约100条消息),但有10%到20%的消息丢失

0 个答案:

没有答案