Serilog 有没有办法设置一个(有限大小)日志缓冲区来收集指定级别及以上的所有日志事件(即DEBUG
)但不会将它们记录到目标接收器中,除非发生某个更高级别的事件(即WARNING
)?
基本上我问是否有办法复制BufferingForwardingAppender
log4net 的功能。
Serilog 没有 Log4Net 的等效项BufferingForwardingAppender
截至撰写本文时,它是开箱即用的,但社区构建的一些接收器可能有用:
- Serilog.Sinks.Buffered https://github.com/timgaunt/serilog-sinks-buffered
- Serilog.Sinks.Buffer https://github.com/dsschneidermann/Serilog.Sinks.Buffer
或者它应该很容易创建您自己的水槽 https://github.com/serilog/serilog/wiki/Developing-a-sink来实施该行为。
在这种情况下,您可能想查看以下代码Serilog.Sinks.Async https://github.com/serilog/serilog-sinks-async以获得灵感,因为它向您展示了一种将多个接收器包装成一个接收器的方法,这将使您有机会在转发到接收器之前缓冲日志消息。
最后,由于您熟悉Log4Net,因此可以将Log4Net与Serilog集成并使用Log4Net的BufferingForwardingAppender
通过使用Log4Net Serilog 接收器 https://github.com/serilog/serilog-sinks-log4net.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)