1

我正在使用 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");
4

1 回答 1

0

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

        // 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(); 
            }
        }
于 2016-04-29T07:59:29.540 回答