.net - 使用 NLog 记录 HTTP 请求

标签 .net asp.net-mvc logging asp.net-web-api nlog

如何使用 NLog 完整记录 HTTP 请求

这是 Fiddler的方法 捕获它,我需要这样的东西:

POST http://localhost/api/places/add HTTP/1.1
User-Agent: Fiddler
Host: localhost
Authorization: 375DF933413
Content-Length: 78
Content-Type: application/json

{ "location": { "lon": 35.005577, "lat": 48.435533}, "name": "n1" } 

我相信应该可以编写一些“神奇的”NLog 布局表达式。

最佳答案

一个简单的方法:

public class LogHttpRequestAttribute : ActionFilterAttribute
{
    private static Logger _logger = LogManager.GetCurrentClassLogger();

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        _logger.Debug("action executing");

        base.OnActionExecuting(filterContext);
    }
}

用法:

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();

    // Register global filter
    GlobalFilters.Filters.Add(new LogHttpRequestAttribute ());


}

要记录 URL,请在您的配置中使用 ${aspnet-request:serverVariable=HTTP_URL},参见 wiki .为这些布局渲染器安装 NLog.Web。

参见 NLog Wiki

关于.net - 使用 NLog 记录 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154860/

相关文章:

.net - C# WinForms,删除未使用的控件

c# - 序列不包含任何元素错误,但我想检查是否为空

asp.net-mvc - MVC 4 - View /部分 View 和表单 - 如何仅更新提交的部分 View ?

java - Logback 滚动文件附加器不起作用

logging - 如何在 MSTest 中记录和离开单元测试

.net - 使 WCF 更易于配置

c# - 让 ServiceStack 保留类型信息

.net - 将参数从 webforms 传递给 Crystal 报表

asp.net-mvc - 当路由具有多个值时如何构建 RouteValueDictionary?

java - 调试级别记录语句性能