系列 |如何根据自定义过滤器控制日志记录级别
Serilog | How to control logging level based upon a custom filter
我希望能够根据自定义查询动态控制 Serilog 的日志记录级别。至少,我希望能够通过其 SourceContext 的开头(即 namespace/full class 名称)来过滤日志消息——这可以使用已编译的正则表达式 statement/state 机器进行优化处理匹配。
理想情况下,除了上述之外,我可以创建仅适用于某些用户的 SourceContext 过滤器 - 例如通过事件中的 UserId 字段 - 优先于没有指定 UserId 的过滤器.
我希望能够通过管理网站动态修改此类过滤器的集合,从而允许我自己或其他管理员 increase/decrease 代码特定部分和特定用户的冗长级别有需要。
我想知道这里是否有人知道使用 Serilog 实现此类功能的最佳方法?我用谷歌搜索了这个,但我还没有发现 Serilog 的任何开箱即用的过滤功能,看起来它们可以胜任这项任务。在这种情况下,我可能会通过一个中间的、进程内的 Sink 来解决它。
我找到了一个相关但不同的问题的答案,看起来是一个很好的解决方案:_
看起来 Serilog 确实提供了一种在中间接收器中包装接收器的机制,并且通过这样做应用我正在寻求的过滤逻辑应该不会太困难。
我希望能够根据自定义查询动态控制 Serilog 的日志记录级别。至少,我希望能够通过其 SourceContext 的开头(即 namespace/full class 名称)来过滤日志消息——这可以使用已编译的正则表达式 statement/state 机器进行优化处理匹配。
理想情况下,除了上述之外,我可以创建仅适用于某些用户的 SourceContext 过滤器 - 例如通过事件中的 UserId 字段 - 优先于没有指定 UserId 的过滤器.
我希望能够通过管理网站动态修改此类过滤器的集合,从而允许我自己或其他管理员 increase/decrease 代码特定部分和特定用户的冗长级别有需要。
我想知道这里是否有人知道使用 Serilog 实现此类功能的最佳方法?我用谷歌搜索了这个,但我还没有发现 Serilog 的任何开箱即用的过滤功能,看起来它们可以胜任这项任务。在这种情况下,我可能会通过一个中间的、进程内的 Sink 来解决它。
我找到了一个相关但不同的问题的答案,看起来是一个很好的解决方案:
看起来 Serilog 确实提供了一种在中间接收器中包装接收器的机制,并且通过这样做应用我正在寻求的过滤逻辑应该不会太困难。