我有以下代码用于在 Windows 上运行的自定义 syslog 服务器(使用 Syslog4J)。
final UDPNetSyslogServerConfig udpConfig = new UDPNetSyslogServerConfig();
udpConfig.setPort(Integer.parseInt(port));
udpConfig.setHost(host);
udpConfig.addEventHandler(new Handler());
udpConfig.setUseDaemonThread(false);
SyslogServerIF server = SyslogServer.createInstance(host + port, udpConfig);
server.run();
它监听传入的事件并在收到事件时调用处理程序(方法)。
如果我在 Mac 上运行相同的代码,它就会出来。即使我使用循环等待事件,也不会捕获事件。
while (!stop) {
SyslogUtility.sleep(1000);
}
甚至处理程序的 initialize() 方法也不会在 Mac 上调用。