如何将电子邮件地址作为参数从C#代码传递到log4net smtp appender

如何将电子邮件地址作为参数从C#代码传递到log4net smtp appender,c#,.net,log4net,configuration-files,smtpappender,C#,.net,Log4net,Configuration Files,Smtpappender,我正在使用log4net smtp appender在应用程序出错时发送电子邮件警报。是否有一种方法可以在运行时分配电子邮件地址,而不是将其放入配置文件中。配置文件是: <appender name="LogSmtpAppender" type="log4net.Appender.SmtpAppender"> <authentication value="Basic" /> <to value="" /> 您可以获取appender,

我正在使用log4net smtp appender在应用程序出错时发送电子邮件警报。是否有一种方法可以在运行时分配电子邮件地址,而不是将其放入配置文件中。配置文件是:

<appender name="LogSmtpAppender" type="log4net.Appender.SmtpAppender">
      <authentication value="Basic" />
      <to value="" />

您可以获取appender,然后通过设置属性更改配置,然后激活新选项,如:

        // Get the Hierarchy object that organizes the loggers
        Hierarchy hier = log4net.LogManager.GetRepository() as Hierarchy;
        var smtpappender =
                (SmtpAppender)hier.GetAppenders().Where(
                    appender => appender.Name.Equals("LogSmtpAppender", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();

            if (smtpappender != null)
            {
                // Change your setting here
                smtpappender.To = "new@value.com"
                // Activate the options
                smtpappender.ActivateOptions(); 
            }
        }

您可以获取appender,然后通过设置属性更改配置,然后激活新选项,如:

        // Get the Hierarchy object that organizes the loggers
        Hierarchy hier = log4net.LogManager.GetRepository() as Hierarchy;
        var smtpappender =
                (SmtpAppender)hier.GetAppenders().Where(
                    appender => appender.Name.Equals("LogSmtpAppender", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();

            if (smtpappender != null)
            {
                // Change your setting here
                smtpappender.To = "new@value.com"
                // Activate the options
                smtpappender.ActivateOptions(); 
            }
        }