0

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

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

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

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

4

2 回答 2

0

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

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

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

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

但是,这会对性能产生影响,您应该尝试找出为什么会出现锁定问题。

于 2012-06-09T11:06:38.597 回答
0

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

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

于 2012-06-01T13:19:36.117 回答