首页 > 解决方案 > 拦截 NLog LogInformation/LogWarning/LogError 调用

问题描述

我网站上的管理员可以从日志表中列出最后 X 条记录。显然,如果他们在没有记录新记录的情况下继续点击浏览器刷新,这不是太有效。

我已经实现了缓存(我不需要帮助)。我需要做的是“拦截”记录的记录,以便我可以从缓存中清除条目。

是否有一个中心位置来拦截对日志的所有写入?

ASP.NET Core 3.1、C#、NLog v4.7.5

更多细节:

我使用 ILogger 接口将日志记录写入数据库。每次写入日志记录时,我都需要从缓存中删除一个条目(我知道该怎么做)。然后下次有人列出日志时,他们将再次读取数据库并用日志记录重新填充缓存。然后缓存将用于每个列表 requat,直到写入另一个日志记录,缓存条目将再次被清除等。

我的问题:是否有一个集中位置,我可以放置代码以从缓存中删除条目?

我想我可能需要从我的 ILogger 派生另一个类并覆盖 LogInformation/LogWarning 等方法,但我认为可能有更简洁的方法。

标签: asp.net-corenlog

解决方案


推荐阅读