Ich habe den UDPAppender verwendet, um Protokolle an logstash . Ich möchte Failover des Logstash-Servers durch DNS erreichen können.
Implizit erkennt der UDPAppender nicht, ob der ferne UDP-Port verfügbar ist oder nicht, aber selbst wenn dies der Fall ist, wenn ich ihn mit einem DNS-Namen für remoteAddress
Ich überlege mir, meinen eigenen Appender zu implementieren, indem ich den UDPAppender entweder mit einem Ping umbringe oder den RemotingAppender kopiere, indem ich die Wiederverbindung über den DNS-Namen bearbeite. Gibt es so etwas schon?
Haben Sie versucht, log4stash ?
Es ist ein log4net Appender, der einige ähnliche Funktionen wie logstash hat und Ihre Logs direkt in Elasticsearch sendet.
Auf diese Weise haben Sie einen "Fehlerpunkt" auf dem Weg zur Elasticsearch (keine Notwendigkeit, Logstash zu verwenden).
Und wenn Sie bei TCPAppender bleiben wollen,
Sie können den Code von UDPAppender ohne großen Aufwand in einen TCP-Code übertragen .
Ich habe es einmal gemacht, aber leider kann ich den Code nicht veröffentlichen.
Ich habe hier gefunden, der UdpAppender ist nahe am Ende
UdpAppender
Ausführliche Informationen finden Sie im SDK-Referenzeintrag log4net.Appender.UdpAppender.
Das folgende Beispiel zeigt, wie der UdpAppender konfiguriert wird, um Ereignisse an eine RemoteAddress auf dem angegebenen RemotePort zu senden.
%Vor%