【发布时间】:2016-08-19 06:46:43
【问题描述】:
我使用 ASP.NET Web API 创建了一个简单的 REST API。 出于测试目的,我想添加一些跟踪。所以我将 NLog 添加到我的项目中。此时我的日志是这样的:
// POST api/values
public void Post([FromBody]string value)
{
logger.Trace("Request: {0} api/values", Request.Method);
_repository.insert(value);
logger.Trace("Response: {0} api/values", Request.Method);
}
在每个方法中,我在方法的顶部和底部添加了一个 logger.Trace。我对这种方法有 2 个问题:
- 我需要记住将这些行添加到我的每个方法中
- 我不知道如何将 JSON 正文添加到我的跟踪中
第 1 点目前还不是真正的问题(见下文),但我很快需要一些东西来检查我的 API 收到的每个 JSON 正文。
我已经试过了
// POST api/values
public void Post([FromBody]string value)
{
logger.Trace("Request: {0} api/values {1}", Request.Method, Request.Body);
_repository.insert(value);
logger.Trace("Response: {0} api/values", Request.Method);
}
但是 Request 上没有 Body 属性。
我还为我的观点找到了一个有趣的文档 1:http://weblogs.asp.net/fredriknormen/log-message-request-and-response-in-asp-net-webapi
【问题讨论】:
-
我已经阅读了很多关于 Trace 的文档,但其中大多数都解释了如何使用 Trace,而不是如何进行 Trace,或者完全是错误的。例如,我从论坛中找到了这个解决方案字符串 val = Request.Form["SGEmail"] ,但这是错误的。没有这样的 Requet.Form 属性。
-
Request.Form 包含页面中