如何将电子邮件地址作为参数从 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();
}
}
我正在使用 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();
}
}