当应用程序只需要写入文件时,它就会过着非常简单的生活,几乎没有问题。
当一个应用程序突然必须处理网络流量(超时,断开连接,重试,连接,延迟等)时,它会突然出现排队,占用内存,使用套接字,导致垃圾收集,停顿等问题。并且在崩溃时丢失所有未决的logevents)
根据应用程序的使用寿命和应用程序的严格要求,为其提供简单的生活是非常有用的。并让朋友喜欢 Cloud Watch Agent 担心网络问题。
Cloud Watch Agent
也可以看看 https://github.com/NLog/NLog.Extensions.Logging/wiki/NLog-cloud-logging-with-Azure-function-or-AWS-lambda
Cloud Watch Agent在您的服务器上运行,可以查看生成的日志文件。这些日志文件可以是任何内容,IIS日志,时间日志,事件日志等。更新日志文件后,CWA将获取更新并发送到Cloud Watch。这是CWA的通用行为,非常适合事件日志和操作系统日志记录。
通过修改AWS.EC2.Windows.CloudWatch.json CWA json文件,您可以将其配置为查看某些格式的日志文件,并将更改发送到默认情况下标准/示例之外的CW。您可以将json更新为NLog条目布局格式,并让它监视文件中的特定格式。 CW发送延迟。
现在你有Nlog写日志文件。您可以让NLog将日志条目发送到文件,让Cloud Watch Agent监视该文件,接收更改并发送它,或者您可以让NLog直接将条目发送到CW。由于您是通过NLog目标直接写入CW,因此您不需要将Cloud Agent用于NLog文件。我建议将CWA保留为其他日志文件,如IIS或事件日志。
我想这是一个优先考虑如何做到这一点。我认为NLog Targets with layouts比处理CloudWatch json文件更容易尝试匹配日志格式。我只使用CWA发送我无法控制的日志文件,并使用NLog Target发送我的NLog条目。
如果您需要一个示例,我可以发布一个示例CWA json片段,用于我使用CWA监控的第三方日志文件。