【问题标题】:Using log4net in .net windows application在 .net windows 应用程序中使用 log4net
【发布时间】:2011-04-19 23:55:51
【问题描述】:

我们正在使用 log4Net 将消息从 .Net 3.5 Windows 应用程序记录到文件和数据库中。

winforms 应用程序已部署到生产环境并已启动并运行。 部署前,level节点属性值设置为“ALL”。

<level value="ALL"/>

当应用程序运行时,我需要将级别更改为“错误”并保存 xml。然后,log4net 应该只在日志中记录“错误”类型的消息。 我如何使用 log4net 实现这一点? 如果不可行,请问有其他方法吗?

谢谢。

【问题讨论】:

    标签: c# logging log4net


    【解决方案1】:

    默认情况下,如果您将 log4net 配置保存在单独的文件中(而不是在 app.config 文件中),您可以更新该文件,并且应用程序将立即更改它记录信息的级别,这要归功于 log4net 中的 XmlConfigurator。

    如果您想从应用程序中动态更新日志记录级别,可以通过 .Net 3.5+ 中的 LINQ to XML 功能轻松实现。我写了一篇博文,概述了如何做到这一点here

    【讨论】:

      【解决方案2】:

      使用

      [组装: log4net.Config.XmlConfigurator(Watch=true)]

      可以工作,根据the documentation

      【讨论】:

      • 它确实有效,但前提是您不使用 app.config / web.config 文件来存储 log4net 配置。您必须使用单独的配置文件。
      【解决方案3】:

      在应用程序中,您需要在配置文件上有一个文件观察器,然后在更改配置文件时重新运行 log4net 初始化。

      【讨论】:

      • 感谢您的输入。“Filewatcher”--?您的意思是使用具有文件依赖性的 .Net 缓存 API 吗?
      • 没有特定的 FileWatcher 类。 msdn.microsoft.com/en-us/library/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 2013-07-17
      • 2011-03-21
      相关资源
      最近更新 更多