現在、syslog UDP メッセージの処理に Syslog4j 0.9.46 を使用しています。コマンドラインから送信するために使用していますが、どうにかして受信する必要があります。これを行うには、次のコードを使用しています。
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/でFAQ と提供されている例も検索しましたが、サーバーに関するものはありませんでした。
だから私の質問はです。からメイン メソッドを呼び出さずに UDP syslog サーバーを実行するにはどうすればよいSyslogServer
ですか? カスタム ハンドラは使用しません。