在user.config中将Log4Net发送到电子邮件?

时间:2015-07-23 08:55:50

标签: asp.net .net log4net

在一个大项目中我们使用log4net。 目前我们有一个正常的全球web.config:

 <appender name="RestartSmtpAppender" type="log4net.Appender.SmtpAppender">
        <to value="koch@xxxx.de" />
        <from value="info@xxxxx.de" />
        <subject value="ccccc />
        <smtpHost value="xxxx" />
        <bufferSize value="512" />
        <lossy value="true" />
</appender>

我们不希望在user.config中进行设置,因此每个开发人员都会收到自己的电子邮件,而不是1个开发人员或1个电子邮件帐户获取所有电子邮件。

这怎么可能?

1 个答案:

答案 0 :(得分:0)

您可以使用log4net&#39; s GlobalContext在本地设置电子邮件地址:这必须在配置log4net之前完成。

string email = "dev1@example.com"; // Get value from user.config or default
GlobalContext.Properties["emailto"] = email;
log4net.Config.XmlConfigurator.ConfigureAndWatch(…);

然后在log4net配置中,您必须将'To'属性标记为PatternString并检索值:

<to type="log4net.Util.PatternString" value="%property{emailto}" />
<from value="info@xxxxx.de" />
...