在运行时禁用/启用nlog规则

时间:2013-10-08 07:44:37

标签: c# .net nlog

我正在使用带有nlog.config文件的nlog。

现在我有一个目标,可以将未处理的异常记录到Web服务

<target xsi:type="WebService" name="webservice"
    url="http://server.tld/services/errorreporting/"
    methodName=""
    namespace=""
    protocol="HttpPost"
>

....

</target>

一条规则:

<logger name="*" minlevel="Fatal" writeTo="webservice" />

现在我不想让用户决定是否要使用此功能。 该应用程序是一个winforms应用程序,用户可以看到未处理异常的对话框。现在我想添加一个errorreporting复选框。只有选中它,我才想登录我的网络服务。

我的想法是使用自定义条件的规则过滤器。 nlog docs声明:

New condition functions are easy to add; just create an ordinary function and mark it with the [ConditionMethod] attribute.

所以我可以写一个函数

public static bool ErrorReportingEnabled()
{
   return Properties.Settings.Default.ErrorReportingEnabled;
}

但我没有找到关于如何在我的过滤器中定义此功能的任何参考。

1 个答案:

答案 0 :(得分:0)

最终我把规则改为

<logger name="WebServiceLogger" minlevel="Fatal" writeTo="webservice" />

在我的代码中,我只是创建一个具有此名称的记录器。