在log4net中使用MemoryAppender和FileAppender

时间:2012-05-31 22:12:13

标签: logging log4net log4net-configuration

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

虽然我看到错误已正确插入数据库,但我发现日志中缺少这些错误。

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

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

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