gpt4 book ai didi

.net - 使用 SyslogNet.Client 通过 TCP 发送 SysLog 消息

转载 作者:行者123 更新时间:2023-12-04 17:35:36 26 4
gpt4 key购买 nike

我正在尝试向我在 Windows 10 中使用 SysLog Watcher 创建的系统日志服务器发送消息。

消息通过 TCP 和 UDP 协议(protocol)发送,但使用 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();
}

sender.Send(msg, serializer);

同样,这在 UDP 上工作得很好,但在使用 TCP 或 LocalSend 时,消息不会发送标志 Facility 和 Severity!

我希望看到标志 Facility 和 Severity 通过 SyslogNet.Client 通过 TCP 协议(protocol)发送。

最佳答案

我找到了解决方案。 Kiwi 系统日志似乎不理解八位字节计数(请参阅 RFC6587)。要解决此问题,您可以将 SyslogTcpSendermessageTransfer 属性设置为 MessageTransfer.NonTransparentFraming

关于.net - 使用 SyslogNet.Client 通过 TCP 发送 SysLog 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56793405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com