在Web应用项目的早期阶段,我决定使用Nlog作为我的日志记录解决方案,并且非常喜欢在代码中调用记录器类的想法,然后在run-时间什么和在哪里登录。然后我们决定将这个应用程序作为Web角色托管在Windows Azure中,以便利用所提供的所有功能。现在,我意识到Nlog不会像我设想的那样工作。以下是更改提出的问题:Web角色日志记录 - Nlog - 访问配置文件
- 它无法登录到标准日志文件夹中的文本文件,因为这些文件夹是只读的,即使它们不是,它们也会是由于实例和实例本地存储设置的方式而不依赖实例,并且在回收时会消失。
- 因为这些配置文件是只读的,所以我无法利用Nlog最强大的功能,即可以在运行时决定如何配置输出。
我已经找到了一些解决方案,以问题的地方登录问题。将目标配置为登录到Azure诊断表或角色的表存储。虽然这可能是我们必须这样做的方式,但它似乎非常有限,因为您似乎只能登录到单个表(诊断或角色的自定义表)。有谁知道更好的解决方案?记录到AzureSQL数据库将会太昂贵。
另外,如果我不能编辑配置文件,我该如何配置Nlog,如果我想临时登录到数据库或SMS,电子邮件等。我知道你可以将信息存储在ServiceConfiguration.cscfg文件中,并且它可以在运行时访问和编辑,但是AFAIK,这不是Nlog配置的选项。有没有办法为所有实例编辑已部署的web.cfg或Nlog配置文件?
由于这些限制,最好使用Nlog报废,并使用不同的更兼容的日志记录方法?
+1 ...感谢您的回应!我们使用了我最初提到的一个表格存储解决方案。我们的一个人定制了他找到的代码。一点也不优化,但我们必须继续前进,但希望找到一个更好的解决方案(希望MS能够在这里看到问题,并为平台制定一个整体解决方案)。 – 2013-06-03 14:09:01