在主配置文件以外的其他文件中设置Log4Net appender

在主配置文件以外的其他文件中设置Log4Net appender,log4net,Log4net,我想在主log4net配置文件之外的另一个文件中放置appender部分 目标是允许我使用log4net.config发布应用程序,但不删除某些特定于客户的信息,如smtp参数 我们的想法是: <logger name="DatabaseLogger"> <level value="ALL" /> <appender-ref ref="AdoNetAppender" /> <appender-ref ref="Smtp

我想在主log4net配置文件之外的另一个文件中放置appender部分

目标是允许我使用log4net.config发布应用程序,但不删除某些特定于客户的信息,如smtp参数

我们的想法是:

  <logger name="DatabaseLogger">    
    <level value="ALL" />
    <appender-ref ref="AdoNetAppender" />
    <appender-ref ref="SmtpAppender" />
  </logger>

 <appender configSource="log4netsmtp.config"/>

log4netsmtp.config是由客户出于安全原因(在我的帮助下)构建的,我从不更改

对不起,我的英语,谢谢你读我


关于

您可以通过程序集的GetManifestResourceStream加载它,以获取文件并将其视为xml,然后使用log4net.config.XmlConfigurator类初始化日志记录器,并将您的XmlElement实例传递给它,或将您的XmlElement附加到现有的log4net xml配置中:

Assembly a = Assembly.GetAssembly(this.GetType());
Stream stream = a.GetManifestResourceStream("MyAssembly.ConfigFolder.logger.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(stream);
// eventually append, modify, merge, check the xml with other info
XmlConfigurator.Configure(xmlDoc);

您可以通过程序集的GetManifestResourceStream加载该文件,以获取文件并将其视为xml,然后使用log4net.config.XmlConfigurator类初始化记录器,并将您的XmlElement实例传递给它,或将您的XmlElement附加到现有的log4net xml配置中:

Assembly a = Assembly.GetAssembly(this.GetType());
Stream stream = a.GetManifestResourceStream("MyAssembly.ConfigFolder.logger.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(stream);
// eventually append, modify, merge, check the xml with other info
XmlConfigurator.Configure(xmlDoc);