我有一个写入Azure队列存储的自定义接收器,对于某些事件,特别是在解构大型实例时,我们达到了Azure对排队消息的消息大小限制(对于Base64编码的消息,为64KB或48KB) )。将消息放入队列时出现异常。我需要避免异常并截断消息以适应。
Serilog是否有内置的方法来帮助限制LogEvent
的整体大小,或者我们是否必须自己编写限制器代码?
答案 0 :(得分:0)
这需要在接收器级别实现,因为不同的表示具有不同的大小要求。在https://github.com/serilog/serilog-sinks-seq/blob/dev/src/Serilog.Sinks.Seq/Sinks/Seq/SeqSink.cs#L147
中有一个JSON大小限制的示例 Serilog也有Destructure.ToMaximumDepth(n)
,但这对于您正在寻找的那种控制来说还不够精确。