在主配置文件之外的另一个文件中设置 Log4Net 附加程序

发布于 2024-12-12 21:30:30 字数 491 浏览 1 评论 0原文

我想将追加器部分放在主 log4net 配置文件之外的另一个文件中。

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

这个想法是:

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

 <appender configSource="log4netsmtp.config"/>

log4netsmtp.config 是由客户出于安全原因(在我的帮助下)构建的,并且永远不会由我更改。

抱歉我的英语不好,谢谢你阅读我的文章。

问候

I want to put an appender section in another file than my main log4net config file.

The goal is to allow me to publish my application with a log4net.config but not erase some customers specific information like smtp parameters.

THe idea is to have :

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

 <appender configSource="log4netsmtp.config"/>

the log4netsmtp.config is build by the customers for security reasons (with my help) and never change by me.

Sorry for my english and thanks you to read me.

Regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七禾 2024-12-19 21:30:30

您可以通过 Assembly 的 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);

You can load it through Assembly's GetManifestResourceStream to get your file and treat it like an xml, then to init your logger you can use the log4net.config.XmlConfigurator class and pass to it you XmlElement instance or append your XmlElement to an existing log4net xml configuration:

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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文