我在 AppHarbor
上托管一个使用 NLog
进行日志记录的应用程序。我一直在尝试 Logentries
附加组件,这是一个很好的服务,可以将所有应用程序日志记录通过管道传输,然后通过其 Web 界面进行查看。现在免费试用已经结束,我想在支付该服务费用之前先考虑一下自己进行日志记录。
因为我使用的是 AppHarbor
,所以他们建议不要写入文件系统,因为它会在每次部署时被删除,并且在运行时,我每天都会进行多次部署。无论如何,我使用 S3
来存储图像,因此在那里存储日志似乎也是很自然的。
我发现这种方法的问题是,我会将日志语句发送到存储在 S3
上的文本文件,我需要将其附加到该文本文件中。一旦站点获得一些流量,就会有多个同时调用来存储日志条目,这可能最终会锁定写入机制。有没有更好的方法来做到这一点,我不知道?也许在发送日志条目之前以某种方式对日志条目进行批处理?我使用 Raven 作为数据库,因此如果没有更好的选择,可能会考虑将日志直接写入 Raven。
最佳答案
看起来 S3 或 RavenDB 没有 NLog 目标,但有很多或其他选项:http://nlog-project.org/wiki/Targets
关于amazon-s3 - AppHarbor 和 Amazon S3 的良好日志记录策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15303654/