I use log4net for send mails to my app users. I must to have dynamic configuration for doing it. So I tried using GlobalContext.Properties for this, but it doesn't work!
Here is my code of original appender:
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="myAddress@myComp.com" />
<from value="myAddress@myComp.com" />
<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>
at c#:
ILog emailLog = log4net.LogManager.GetLogger("EmailLogger");
log4net.Config.XmlConfigurator.Configure(emailLog.Logger.Repository);
emailLog.Error("test aaa");
It works well. But, I tried to replace one of the properties to be dynamic- and it not works, the message have not sended.
at appender:
<to value="%property{emailTo}" />
at C#:
log4net.GlobalContext.Properties["emailTo"] = "myAddress@myComp.com";
ILog emailLog = log4net.LogManager.GetLogger("EmailLogger");
log4net.Config.XmlConfigurator.Configure(emailLog.Logger.Repository);
emailLog.Error("test aaa");