【问题标题】:Using MemoryAppender along with FileAppender in log4net在 log4net 中使用 MemoryAppender 和 FileAppender
【发布时间】:2012-05-31 22:12:12
【问题描述】:

我正在使用 FileAppender 登录到我的应用程序中的文件。 现在我开始使用 MemoryAppender 从日志中获取错误并将它们存储在数据库中。这是为了在我查询数据库的 ui 上显示异常/错误。

虽然我看到错误正确插入到数据库中,但我发现它们从日志中丢失了。

我在某处读到 MemoryAppender 只写入内存。 但是当我同时配置了 FileAppender 和 MemoryAppender 时,它不是也应该写入日志文件吗?

是否有一种解决方法,我仍然可以将错误记录到文件中?

【问题讨论】:

    标签: logging log4net log4net-configuration


    【解决方案1】:

    http://logging.apache.org/log4net/release/config-examples.html

    使用此链接将日志存储在数据库中。我已经尝试过它的工作正常。然后您将获得从数据库到网格或任何地方的日志信息。

    【讨论】:

      【解决方案2】:

      我不确定您使用 MemoryAppender 做什么。您可以使用 AdoNetAppender 并将日志条目直接存储到数据库中。

      如果我理解正确,那么您的问题是关于文件中丢失的日志。 Log4net 应该将所有日志条目发送到所有配置的附加程序,除非您明确配置它不这样做。我不假设您配置了任何过滤器来阻止将某些消息写入文件。所以也许你有文件锁定问题(内部调试应该会发现这个问题,请参阅log4net FAQ)。

      如果是这种情况,您可以尝试将其用于文件附加程序:

      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      

      但这会对性能产生影响,您应该尝试找出出现锁定问题的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多