V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
DinoStray
V2EX  ›  程序员

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

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

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

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