• 请不要在回答技术问题时复制粘贴 AI 生成的内容
DinoStray
V2EX  ›  程序员

日志的格式化, 大家有什么最佳实践么

  •  
  •   DinoStray · Apr 1, 2020 · 3845 views
    This topic created in 2407 days ago, the information mentioned may be changed or developed.

    日志样例:
    [zookeeper]node already exist: /zoo/hi

    这里的 [zookeeper] 就是我对日志内容的一种归类, 是一个 tag, 表明是 zookeeper 类的日志.

    结果我发现 [] 并不适合用在日志, 要是用 less 搜索日志, [] 会被处理为正则表达式

    日志的格式化, 大家有什么最佳实践么

    18 replies  •  2020-04-02 09:39:38 +08:00
    guyeu
    guyeu
    Apr 1, 2020
    1
    了解一下转义。。
    chendy
    chendy
    Apr 1, 2020
    2
    zk 这类的日志没留意过…
    nginx 、tomcat 和 spring-boot 的日志,全部用自定义的 json 格式,方便用 filebeat 拉进 es
    lidlesseye11
    lidlesseye11
    Apr 1, 2020
    3
    你这个理由......
    \[zookeeper\]
    还有,这 tag 是干啥用的?为啥要格式化啊?有啥 ELK 满足不了的需求吗
    DinoStray
    DinoStray
    OP
    Apr 1, 2020
    4
    通过转义搜索, 我是知道的.
    可是这样很麻烦, 比如我换成 {zookeeper}, 就直接搜 {zookeeper} 就好了.
    DinoStray
    DinoStray
    OP
    Apr 1, 2020
    5
    我的问题, 也不是怎样 在 less vi 中使用转义, 而是日志格式化, 有没有什么最佳实践可以分享
    DinoStray
    DinoStray
    OP
    Apr 1, 2020
    6
    如果 {zookeeper} 可以节省我日后查询日志的工作量, 为什么我不一开始就用 {zookeeper}, 而是每次查询还得用一下转义那个[].
    所以我的问题, 是日志格式化的最佳实践
    DinoStray
    DinoStray
    OP
    Apr 1, 2020
    7
    @chendy 可是有些内容, 还是给开发者看的, 不管开发过程定位问题, 还是线上故障分析. 这类给开发者看的日志, 有没有什么好的, 更易读的最佳实践
    mrytsr
    mrytsr
    Apr 1, 2020 via Android
    8
    参见 nginx 的日志
    learningman
    learningman
    Apr 1, 2020
    9
    日志这种东西能用就行了
    yidinghe
    yidinghe
    PRO
    Apr 1, 2020
    10
    你要是丢到 ELK 的话,格式都不重要了,反正都会被分词。这个时候的最佳实践是面向分词优化,比如说 “批量订单处理查询已支付订单,结果 30 条记录”这种,改成“批量订单处理 查询完成 status=PAID count=30”这样分多段关键字、空格隔开更好,因为搜索日志的时候就知道按照哪些关键字来查。
    mnssbe
    mnssbe
    Apr 1, 2020
    11
    怕麻烦啊, 关机睡觉吧
    lululau
    lululau
    Apr 1, 2020
    12
    用英文,不行汉语拼音也行,就是别用汉字
    Trim21
    Trim21
    Apr 1, 2020
    13
    输出成 json,然后收集到 es 里
    gamexg
    gamexg
    Apr 1, 2020
    14
    [] 使用转移可以解决

    另外我现在喜欢结构化日志。
    TimePPT
    TimePPT
    Apr 2, 2020 via Android
    15
    直接 ES 搞定
    looplj
    looplj
    Apr 2, 2020
    17
    结构化
    Varobjs
    Varobjs
    Apr 2, 2020 via Android
    18
    最佳实践就是
    1. 不要手动记错误,每个人写法不一样
    2. 同个项目多个日志文件,或者不同服务要保证能用一个 ID 串联起来,要不记再多也枉然

    格式问题,详细且一致就好,没啥最佳实践的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2214 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 16:07 · PVG 00:07 · LAX 08:07 · JFK 11:07
    ♥ Do have faith in what you're doing.