asp.net-core - 拦截 NLog LogInformation/LogWarning/LogError 调用
问题描述
我网站上的管理员可以从日志表中列出最后 X 条记录。显然,如果他们在没有记录新记录的情况下继续点击浏览器刷新,这不是太有效。
我已经实现了缓存(我不需要帮助)。我需要做的是“拦截”记录的记录,以便我可以从缓存中清除条目。
是否有一个中心位置来拦截对日志的所有写入?
ASP.NET Core 3.1、C#、NLog v4.7.5
更多细节:
我使用 ILogger 接口将日志记录写入数据库。每次写入日志记录时,我都需要从缓存中删除一个条目(我知道该怎么做)。然后下次有人列出日志时,他们将再次读取数据库并用日志记录重新填充缓存。然后缓存将用于每个列表 requat,直到写入另一个日志记录,缓存条目将再次被清除等。
我的问题:是否有一个集中位置,我可以放置代码以从缓存中删除条目?
我想我可能需要从我的 ILogger 派生另一个类并覆盖 LogInformation/LogWarning 等方法,但我认为可能有更简洁的方法。
解决方案
推荐阅读
- php - 我对 AJAX 数据变量有疑问。收到错误 500
- c# - SqlException:无法打开登录请求的数据库 X。登录失败。用户 Y 登录失败
- c# - C# 服务总线队列触发器永远不会被触发
- javascript - 何时调用 clearInterval - 当计时器更改或当与 setInterval 关联的渲染器被卸载时
- python - 如何从不是 matplotlib 的图表中制作子图?
- javascript - 用于搜索包含点的单词的 Javascript 正则表达式
- awk - 获取匹配行之后的所有非空行
- vue.js - 如何在自定义 VuePress 组件中使用 vue-i18n?
- javascript - 如何在子集合中制作虚拟对象 - Mogoose
- linux - 如何使用 cdo 命令在 c shell 上打开 25 个具有相同结构的文件并将内容复制到一个文件中