0
我使用log4net将邮件发送给我的应用程序用户。 我必须拥有动态配置才能做到这一点。 所以我尝试使用GlobalContext.Properties这个,但它不工作!Log4net- smtpAppender的动态配置属性
这是我原来的appender代码:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="[email protected]" />
<from value="[email protected]" />
<subject value="test logging message" />
<smtpHost value="out.bezeqint.net" />
<username value="myUserName" />
<password value="myPassword />
<authentication value="Basic" />
<bufferSize value="512" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="ERROR" />
</evaluator>
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN" />
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %newline%newline - %message%newline" />
</layout>
</appender>
在C#:
ILog emailLog = log4net.LogManager.GetLogger("EmailLogger");
log4net.Config.XmlConfigurator.Configure(emailLog.Logger.Repository);
emailLog.Error("test aaa");
它运作良好。 但是,我试图将其中一个属性替换为动态 - 并且不起作用,消息没有发送。
在附加器:
<to value="%property{emailTo}" />
在C#:
log4net.GlobalContext.Properties["emailTo"] = "[email protected]";
ILog emailLog = log4net.LogManager.GetLogger("EmailLogger");
log4net.Config.XmlConfigurator.Configure(emailLog.Logger.Repository);
emailLog.Error("test aaa");
有没有一种方法来创建和追加的SMTP的Appender到log4net的不和配置在web.config文件。 –
@CengizAraz是的,你可以添加一个编程 – stuartd
是否有任何引用,您可以添加在这里?因为所有我通过搜索看到人们在添加SmtpAppender到配置文件,或者重写SendBuffer()或append()方法。我想创建一些动态的东西,并能够在我的C#文件中定义SmtpAppender的所有属性。我会非常感激。 –