midwayjs / logger

midway logger
MIT License
4 stars 3 forks source link

为标准输出禁用 ansi 提供进程内的显式配置项 #66

Open zhcsyncer opened 2 years ago

zhcsyncer commented 2 years ago

容器运行时基于标准输出 -> log driver 的日志采集方式, 由于 ansi 的格式化, 导致采集日志的 agent 解析出现预期外的结果, 当前仅支持环境变量控制, 但 k8s 等环境的配置本身对于业务方来讲, 可控性不强.

且本场景理论上来说可能会因为不同的运行环境有差异, 比如本地开发环境依然是有意义的, 所以提供显式的配置项, 可针对不同的 profile 做相应的处理.

实际输出

^[[0m2022-08-01 21:57:13,543 INFO 75979 xxx^[[0m

基于 containerd + fluent-bit 的解析器

[PARSER]
    # http://rubular.com/r/tjUt3Awgg4
    Name cri
    Format regex
    Regex ^(?<time>[^ ]+) (?<stream>stdout|stderr) (?<logtag>[^ ]*) (?<message>(.|\n)*)$
    Skip_Empty_Values false
    Time_Key    time
    Time_Format %Y-%m-%dT%H:%M:%S.%L%z