docker容器日志默认都是以JSON 的格式写到文件中,每一条 json 日志中默认包含 log, stream, time 三个字段
{
"log": "\u001b[2m2024-09-12 09:23:17.866\u001b[0;39m \u001b[32m INFO\u001b[0;39m \u001b[35m1\u001b[0;39m \u001b[2m---\u001b[0;39m \u001b[2m[freshExecutor-0]\u001b[0;39m \u001b[36mcom.netflix.discovery.DiscoveryClient \u001b[0;39m \u001b[2m:\u001b[0;39m Disable delta property : false\n",
"stream": "stdout",
"time": "2024-09-12T01:23:17.866690416Z"
}
应用容器日志通过配置[Input]模块中引用docker解析插件将Input抽取的非结构化容器日志转化为标准的结构化数据后得到:
{
"log":=>"2024-09-12 02:07:00.371 INFO 1 --- [a-EvictionTimer] c.n.e.registry.AbstractInstanceRegistry : Running the evict task with compensationTime 0ms",
"stream"=> "stdout",
"time"=> "2024-09-12T01:23:17.866690416Z"
}
到这一步后,我怎样再次对log字段进行二次处理呢?比如提取里面的<level>和 <message> 然后再对java错误日志进行多行合并。