Php 如果超过最大行长,则拆分独白日志消息
我正在使用将日志消息推送到最大消息长度限制为1024个字符的Php 如果超过最大行长,则拆分独白日志消息,php,monolog,Php,Monolog,我正在使用将日志消息推送到最大消息长度限制为1024个字符的处理程序 我正在寻找截获日志消息的最佳方法,如果超过1024个字符,则将其拆分为两个(或更多) 我可以构建一个格式化程序,只需将消息剪切为1024个字符,但我希望保留信息 下一个想法是使用处理器,但它只是接收有问题的记录,无法注入另一条记录 因此,我想正确的方法应该是构建一个自定义处理程序,例如,messagelengththimithandler,在该处理程序中,我可以包装最终接收消息的真正处理程序 我尝试过查看其他处理程序,似乎我只
处理程序
我正在寻找截获日志消息的最佳方法,如果超过1024个字符,则将其拆分为两个(或更多)
我可以构建一个格式化程序
,只需将消息剪切为1024个字符,但我希望保留信息
下一个想法是使用处理器
,但它只是接收有问题的记录,无法注入另一条记录
因此,我想正确的方法应该是构建一个自定义处理程序,例如,messagelengththimithandler
,在该处理程序中,我可以包装最终接收消息的真正处理程序
我尝试过查看其他处理程序,似乎我只需要实现handle()
函数,rest可以从中继承。
但是,我有点不确定将一个$record
拆分为两个的正确方法是什么-有什么建议吗
一旦我将它们拆分,我就可以简单地对每个记录使用$this->handle->handle($record)
(或者通过将数组传递给handleBatch()
)将它们传递给我的大脑:定制处理程序可能是个好主意。如果查看StreamHandler
它实现了AbstractProcessingHandler
,它提供了一个函数write()
。也许你可以从你自己的类中扩展它并重写它。@Debflav是的,我知道这一点(即使我相信在这种情况下,AbstractHandler
可能就足够了),但我真正的问题是如何以最佳方式将一条$record拆分为两条?