Я пытаюсь отправить сообщение на мой сервер системного журнала в Windows 10, созданный с помощью SysLog Watcher.
Сообщение отправляется по протоколам TCP и UDP, но при использовании TCP флаги Severity и Facility не отправляются.
С UDP все работает нормально!
Я уже пробовал Kiwi Server и проблема та же.
Я использую nuget SyslogNet.Client и отправляюсообщение UDP следующим образом:
SysLogMessage msg = new SysLogMessage(SyslogMessage(
DateTimeOffset.Now,
14, // Facility - LogAlert
2, // Severity - Critical
LocalHostName ?? Environment.MachineName, // MachineName
"AppName", // AppName
null, // ProcId
"MessageType", // Message type name
"message to be sent"); // message to be sent
ISyslogMessageSerializer serializer = options.SyslogVersion == "5424"
? (ISyslogMessageSerializer)new SyslogRfc5424MessageSerializer()
: options.SyslogVersion == "3164"
? (ISyslogMessageSerializer)new SyslogRfc3164MessageSerializer()
: (ISyslogMessageSerializer)new SyslogLocalMessageSerializer();
SyslogMessage msg = CreateSyslogMessage(options);
ISyslogMessageSender sender = null;
if (options.NetworkProtocol.Equals("tcp", StringComparison.InvariantCultureIgnoreCase))
{
sender = IsEncryptedTCP ?
(ISyslogMessageSender)new SyslogEncryptedTcpSender(options.SyslogServerHostname, options.SyslogServerPort)
: (ISyslogMessageSender)new SyslogTcpSender(options.SyslogServerHostname, options.SyslogServerPort);
}
else if (options.NetworkProtocol.Equals("udp", StringComparison.CurrentCultureIgnoreCase))
{
sender = (ISyslogMessageSender)new SyslogUdpSender(options.SyslogServerHostname, options.SyslogServerPort);
}
else
{
sender = (ISyslogMessageSender)new SyslogLocalSender();
}
#endregion
sender.Send(msg, serializer);
Опять же, это прекрасно работает с UDP, но при использовании TCP или LocalSend сообщение не отправляет флаги Facility и Severity!
Я ожидаючтобы увидеть флаги Facility и Severity, отправленные через протокол SyslogNet.Client over TCP!
Спасибо!