如何使用 SYSLOG 和 TLS 从 Windows 服务发送日志?
Posted
技术标签:
【中文标题】如何使用 SYSLOG 和 TLS 从 Windows 服务发送日志?【英文标题】:How to send logs using SYSLOG and TLS from a windows service? 【发布时间】:2020-11-10 11:17:38 【问题描述】:我正在创建一个 Windows 服务,它将使用 SYSLOG 将日志发送到远程服务器。此服务器要求使用 TLS 发送日志。
我目前正在使用Microsoft.Extensions.Logging.Log4Net.AspNetCore
(Log4Net) 来实现这一点。但似乎 log4net 的 RemoteSyslogAppender 不支持 TLS(RFC5425)。
<?xml version="1.0" encoding="utf-8"?>
<log4net debug="true" threshold="ALL">
<!-- Doc: http://logging.apache.org/log4net/release/sdk/index.html -->
<!-- From Xml-Schemas, add Common\ConfigAndInfo\log4net.xsd -->
<appender name="SYSLOG" type="log4net.Appender.RemoteSyslogAppender">
<remoteAddress value="%envSYSLOG_URL" />
<remotePort value="514" />
<appName>Application</appName>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message%newline"/>
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="SYSLOG" />
</root>
</log4net>
我看到了一个 Nuget 包 (https://www.nuget.org/packages/syslog4net/),它添加了 TLS 支持,但它自 2017 年以来一直没有更新。所以我有点犹豫要不要使用它。
有人找到解决办法了吗?似乎 log4net 是用于登录 .NET 的 goto 库?奇怪它不支持像 TLS 这样常见的东西?
【问题讨论】:
【参考方案1】:Serilog 使用 Syslog 接收器成功了!
【讨论】:
以上是关于如何使用 SYSLOG 和 TLS 从 Windows 服务发送日志?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mac OS X *和* Debian (7) 上使用 SysLogHandler 或 syslog 从 Python 登录到 syslog