2013-03-08 107 views
2

我在AppHarbor上托管应用程序,该应用程序使用NLog进行日志记录。我一直在尝试使用Logentries加载项,这是一项很好的服务,可以管理所有应用程序日志记录,然后通过其Web界面进行查看。现在已经到了免费试用期的结束,我想在付费购买之前先做自己的日志。AppHarbor和亚马逊S3的良好日志记录策略

因为我使用的是AppHarbor,所以他们建议不要写入文件系统,因为它在每次部署时都会被擦除,并且在进行流式处理时,我会每天进行多次部署。无论如何,我使用S3来存储图像,所以在那里存储日志似乎也很自然。

我可以用这种方法看到的问题是,我会将日志语句触发到存储在S3上的文本文件中,我需要将其附加到该文件中。一旦网站获得了一些流量,将会有多个同时调用来存储日志条目,这可能最终会锁定写入机制。有没有更好的方法来做到这一点,我不知道?也许在发送它们之前以某种方式批处理日志条目?我使用Raven作为我的数据库,因此如果没有更好的选择,可以直接将日志写入Raven

回答

2

它看起来并不像有对S3或RavenDB NLOG目标,但也有一堆或其他选项:http://nlog-project.org/wiki/Targets

+0

感谢@friism - 看起来像一个人写了一RavenDB目标:https://开头的github .com/mswietlicki/NLog.RavenDb – levelnis 2013-03-09 09:53:04

+0

但仔细观察,这是我以前无法工作的项目,这就是为什么我首先使用Logentries的原因 – levelnis 2013-03-09 09:56:57

+1

现在我已经得到了它的工作。我在我的解决方案中有两个项目,只将这个包添加到了Web项目中。一旦我将其添加到域项目以及它开始工作。 – levelnis 2013-03-09 22:11:18