我最近将OWIN添加到我现有的ASP.NET MVC 5项目中。 我使用它来记录发送到我服务器的请求和响应数据。
所有内容都设置正确,日志记录效果很好,除了一个我并不感到兴奋的问题:它会记录任何静态文件请求。
我的一个自定义日志:
Request
Method: GET
Path: http://localhost:12345/content/stylesheets/site.css.map
Headers: ...
Body: ...
我发现当我加载一个网页时,我可以看到从所有静态文件加载生成了8个日志条目。我只关心主要要求。
现在,我可以进入白名单或黑名单请求路径,但我想在此之前,必须有一种更简单的方法。
我想避免这样做:
_urlsToNotLog = new[]{
"content/stylesheets/site.css.map",
"Scripts/jquery.validate.unobtrusive.js",
.
.
};
if(_urlsToNotLog.Contains(environment["owin.RequestPath"]))
{
//log request
}
else
{
//Don't log
}
我的代码:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Use<LoggingMiddleware>();
}
}
public class LoggingMiddleware
{
public LoggingMiddleware(AppFunc next)
{
_next = next;
}
public async Task Invoke(IDictionary<string, object> environment)
{
LogRequest(environment);
await _next(environment);
LogResponse(environment);
}