我使用Monolog将日志消息推送到最大邮件长度限制为1024个字符的Handler
。
我正在寻找拦截我的日志消息的最佳方法,如果超过1024个字符将它们分成两个(或更多)。
我可以构建一个Formatter
来简单地将消息剪切为1024个字符,但我想保留这些信息。
接下来的想法是使用Processor
,但它只是收到有问题的记录,而且无法注入另一条记录。
所以我想正确的方法是建立一个自定义处理程序,例如MessageLengthLimitHandler
,我可以在其中包裹真正的处理程序,最后接收我的消息。
我已经尝试过查看其他处理程序,似乎我需要实现的是handle()
函数,其余部分可以从AbstractHandler继承。
但是,我有点不确定将一个$record
分成两个的正确方法是什么 - 任何建议?
只要我将它们拆分,我就可以使用$this->handler->handle($record)
为每条记录传递它们(或者将数组传递给handleBatch()
)