【问题标题】:log4net and event logging suddenly stopped working on Windows servicelog4net 和事件日志突然停止在 Windows 服务上工作
【发布时间】:2018-07-11 20:43:42
【问题描述】:

我有一个每天运行的 Windows 服务(c#,.net v4.5.2),应该将错误记录到 Windows 事件日志(通过 System.Diagnostics),并将错误和进度信息记录到数据库(通过 log4net)。 Log4net 设置为写入“INFO”级别。

我上次查看时两种日志记录机制都运行良好,但昨晚 Windows 服务失败了。我查看了 d/b 和事件日志,发现它自 6 月 20 日以来没有写入任何内容,直到它在昨晚崩溃后记录了自动重启(对两个日志)。

平台是 Azure 中的 Windows 2012R2 VM。该服务从从属数据库获取更改跟踪的 SQL 更新,将它们应用于主数据库,备份主数据库并通过从属数据库恢复它,log4net 日志在主数据库上。一切都运行良好,只是放弃了日志记录。

谁能解释为什么它可能停止记录到 log4net 和 Windows 事件日志?

【问题讨论】:

  • 当然..您要求我们调试您的环境、思想和代码,而我们看不到它们吗?我唯一能想到的是权限已更改
  • 并非如此。我想知道是否有人有无缘无故停止记录的经验(服务本身已经成功运行),以及他们是否设法找出原因。
  • 您是否检查了服务使用的用户以及密码是否已更改?
  • 如我所说,服务已经运行成功。只是记录已停止。如果只是 log4net 停止了,我认为这是某种配置错误,但事件日志记录也停止了。编辑问题以添加一些上下文。
  • K,我有一个可行的假设 - 与此相关 stackoverflow.com/questions/26620785/… - 我将发布作为答案

标签: c# log4net


【解决方案1】:

应用程序服务器、域控制器和数据库服务器在 log4net 停止记录的当天同时重新启动。因此,可能的原因是当应用服务器启动并启动 Windows 服务时,log4net 无法连接到数据库并关闭。

(没有 Windows 事件可能是一个红鲱鱼 - 因为该服务在其他方面运行良好而没有任何错误,所以它没有任何东西可以写入 Windows 事件。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多