我希望能够在生产中打开NLOG中的跟踪级记录,但仅适用于当前的Web请求。
换句话说,我希望能够做类似...
之类的事情http://mywebsite.com?logeverything=true
...它可以进行跟踪级记录,但仅针对该网络请求,而不是同时发生的数百个其他请求。我还希望该请求的日志与其余的日志记录所在的文件不同。查询字符串的一种可接受的替代方法是打开跟踪级记录,但前提是Web请求是本地的。
我可以编写自己的记录器类,并覆盖NLOG日志方法以沿着这些行进行操作,但是我的Web项目使用了许多不同的组件,然后切换所有项目使用新的Logger类是一个疼痛。
有人这样做吗?
这可以在不需要包装的情况下完成。
-
也安装nlog.web(或在ASP.NET核心的情况下:nlog.web.aspnetcore nd nd selthertation教程
-
在C#
中创建跟踪日志 - 写入会话是您的请求
在.config
中过滤您的日志<logger name="*" writeTo="myFile"> <filters> <when condition="${aspnet-session:Variable=myRequest} != 1" action="Ignore" /> </filters> </logger>
- 在这种情况下,我使用会话,但是您也可以使用
${aspnet-request-url}
-但这使得配置更复杂
- 在这种情况下,我使用会话,但是您也可以使用