例如,Nlog具有一些ASP.NET日志记录功能(请参阅布局呈现器列表)
${aspnet-request}
Run Code Online (Sandbox Code Playgroud)
对于日志表单项,我需要知道项目的名称.
${aspnet-request:form=myVariable}
Run Code Online (Sandbox Code Playgroud)
但是如何从物品中记录所有物品,这些物品都是未知的?例如
${aspnet-request:form}
Run Code Online (Sandbox Code Playgroud)
我自己编写了自己的 LayoutRenderer(事实上,最近刚刚做了一些几乎相同的事情)——NLog 最好的部分之一是该框架的可扩展性。根据您的配置方式,配置将决定您如何引用/加载自定义布局渲染器,但就您可以做的事情而言,天空确实是限制。
在我的脑海中,您可以使用自定义渲染器采用两种方法之一:包装/扩展现有的 asp 请求渲染器并仅代理所有调用,或者以与 nlog 相同的方式获取请求对象的钩子(这很棘手;如果内存允许的话,它会调用获取 COM 实例)。
我采取的方法是将 NameValueCollection 嵌入到传出的 LogEventInfo 对象本身中(在属性字典中),然后使用自定义布局渲染器来提取该集合并渲染它。
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |