繁体   English   中英

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

[英]How to pass email address as parameter from C# code to log4net smtp appender

我正在使用log4net smtp appender在应用程序出错时发送电子邮件警报。 有没有办法在运行时分配电子邮件地址而不是放入配置文件。 配置文件是:

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

我正在从我的应用程序初始化记录器:

 public static readonly log4net.ILog applicationLog = log4net.LogManager.GetLogger("MyApplication");

您可以获取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(); 
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM