【问题标题】:How to change Log Level in a windows service如何在 Windows 服务中更改日志级别
【发布时间】:2011-09-01 18:35:17
【问题描述】:

我正在运行一个网站和一个 Windows 服务。我可以在运行时使用我创建的页面更改我的网站的日志级别,并且我想对我的 Windows 服务执行相同的操作(即:使用页面来监视我在服务)。

您是否有一些提示和技巧来实现这一目标?还是每次我需要更详细地记录一些事情时,我应该辞职并上传新版本的 log4net 文件(这个上传有点棘手而且很烦人)?

感谢您的想法,

[编辑] 不幸的是,这里列出的答案都不是针对我的问题。我的是从机器 B 上运行的网站从机器 A 上的服务访问 log4net。因此访问机器 A 的 Web 可能允许我更改机器 B 的服务线程的日志级别。

【问题讨论】:

    标签: c# log4net


    【解决方案1】:

    如果您的 Windows 服务使用ConfigureAndWatch,您应该能够像编辑网站一样使用您创建的页面编辑配置文件,前提是您将配置文件放在可通过网页访问的位置。

    您还必须更改您在 Windows 服务中加载的配置文件的路径,但这应该是一个解决方案。

    【讨论】:

      【解决方案2】:

      您可以修改配置文件并让您的应用程序获取更改。诀窍是您不能使用 app.config/web.config 文件来执行此操作。否则,在更改发生之前需要重新启动您的应用程序。这是一个 SO 问题,有几个可能有效的答案:

      .net dynamically refresh app.config

      您也可以通过如下代码进行更改:

      http://weblogs.asp.net/psteele/archive/2010/05/03/tweaking-log4net-settings-programmatically.aspx

      【讨论】:

        【解决方案3】:

        好吧,我只找到了一些东西,它连接我的服务和 Web 应用程序以访问数据库中的同一个表,并定期检查该表以更改 servizio 中的日志级别。

        如果有人有更好的主意,我会全力以赴。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-03
          相关资源
          最近更新 更多