WebApi自定义日志和Azure存储

时间:2016-09-09 02:04:17

标签: azure asp.net-web-api log4net nlog elmah

我使用Log4net记录WebApi控制器方法调用日志文件中的日志方法信息,执行持续时间和异常(我可以将其更改为Elmah或NLog)。我还有一些由开发人员编写的自定义消息日志。所有日志文件都驻留在同一个Web服务器上,如果我想分析它们,我应该将它们移动到另一台机器上。

有没有办法直接将它们写入Azure存储,哪种存储类型(Blob /表/文件)最好?

由于

2 个答案:

答案 0 :(得分:1)

您应该查看log4net的Azure appender:http://stemarie.github.io/log4net.Azure/。它适用于blob存储和表存储。我会选择保存到表存储,因为你将拥有一些基本的搜索功能,而不是blob存储。

ELMAH和NLog都具有与登录Azure存储类似的功能。

答案 1 :(得分:1)

对于完全自动化的解决方案,您可以将Audit.NET与其Audit.WebAPIAudit.log4net扩展名一起使用。

只需在控制器/方法中添加属性:

[AuditApi]
public class UsersController : ApiController
{ ... }

静态初始化代码:

Audit.Core.Configuration.Setup()
    .UseLog4net();

就是这样,你有一个审计系统处理你的web api调用并使用你的默认log4net配置进行记录。