如何将电子邮件地址作为参数从C#代码传递到log4net smtp appender
我正在使用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,
<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();
}
}