Logtail的多行日志合并功能将分散在多行的日志数据聚合为完整的日志事件。其工作流程分为三个步骤:首先,用户配置行首正则表达式,定义多行日志的起始模式(如Java异常日志以时间戳或特定前缀开头)。然后,Logtail对读取到的每行日志开头应用此正则表达式进行匹配。如果某行匹配了行首正则,则认为这是一条新日志事件的开始,前面积累的行合并为一条完整日志;如果某行不匹配,Logtail会将其作为当前日志事件的后续内容继续等待,直到找到下一个匹配行首正则的行。例如Java异常堆栈日志中,只有第一行包含cnt:13472391等信息匹配行首正则,后续的at com.example.myproject.Book.getTitle等堆栈行不匹配,会被合并到同一条日志事件中。这种机制确保了多行异常信息能作为一个完整事件被采集和处理。




