如何使用 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/