Я использую nlog с файлом nlog.config
.Отключение/включение правил nlog во время выполнения
Теперь у меня есть цель, которая регистрирует необработанное исключение в WebService
<target xsi:type="WebService" name="webservice"
url="http://server.tld/services/errorreporting/"
methodName=""
namespace=""
protocol="HttpPost"
>
....
</target>
И правило:
<logger name="*" minlevel="Fatal" writeTo="webservice" />
Теперь я wan't, чтобы позволить пользователю решить, хочет ли он использовать эта особенность. Приложение является приложением 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;
}
, но я не нашел каких-либо ссылок на то, как определить эту функцию в моем фильтре.
https://github.com/Emudofus/BehaviorIsManaged/blob/master/Librairies/NLog/Conditions/ConditionMethods.cs – Vladimir
Вместо того, чтобы читать настройки из вашего конфигурационного файла nlog, я попытался бы изменить правило регистрации во время выполнения, Я надеюсь, что [этот вопрос] (http://stackoverflow.com/questions/10302561/reconfiguring-nlog-programmatically) даст вам некоторое представление –