使用 processor_split_char 分隔日志字段的时候,如果最后一个字段为空,会被丢弃 #871
-
采集 Java 多行日志后,使用 processor_split_char 处理分隔,当最后一个字段为空的时候,输出的 content 没有对应的字段,而中间字段为空,则没问题。
日志内容:
echo -e '2023-05-24 14:00:00.643| INFO [test,f3e1d93809be88e7,f3e1d93809be88e7,false]|2724|setDB|c.s.n.a.c.m.DataSourceContextHolder:18|[HTTP-exec-10]|Message有内容Exception没内容|' >> /tmp/test-log.ing
可以看到当 exception 字段为空时,输出的 json 里面直接丢掉了 exception 这个key ,而中间的message字段为空,key 却能保留。 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
目前的实现的确会有这个问题,可以看下代码https://github.com/alibaba/ilogtail/blob/main/plugins/processor/split/char/split_char.go#L134 ,如果分隔符正好在最后一个字符的话,最后一个key是不会处理的。 |
Beta Was this translation helpful? Give feedback.
目前的实现的确会有这个问题,可以看下代码https://github.com/alibaba/ilogtail/blob/main/plugins/processor/split/char/split_char.go#L134 ,如果分隔符正好在最后一个字符的话,最后一个key是不会处理的。
@gohonsen 是否有兴趣来修改一下呢,golang这部分修改与测试都比较容易上手