关于开发过程中日志的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Renco
V2EX    程序员

关于开发过程中日志的问题

  •  
  •   Renco 2019-12-05 16:46:07 +08:00 2811 次点击
    这是一个创建于 2208 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想问问 V 友们一般日志打印是什么样的流程,我自己是开发过程喜欢写注释。开发完成后在零零散散补日志进去。

    而且总感觉加入的日志意义不大,比如什么 xxx 开始执行 xxx 结束执行,这样的日志信息,是不是没有必要加入。

    一般大家加日志的习惯是怎么样的呢。

    15 条回复    2019-12-06 09:45:29 +08:00
    misaka19000
        1
    misaka19000  
       2019-12-05 16:50:52 +08:00
    根据业务需要来
    sun1991
        2
    sun1991  
       2019-12-05 16:56:36 +08:00
    上线之后甩锅必备, 哪里需要甩锅哪里就加日志.
    wc951
        3
    wc951  
       2019-12-05 16:59:26 +08:00 via Android   1
    你要分清哪些是调试日志,哪些是业务日志
    chendy
        4
    chendy  
       2019-12-05 17:06:02 +08:00
    同意 3L,分清楚调试的和业务的,方便必要的时候改日志级别
    另外信息丰富的报错日志也很重要
    xuanbg
        5
    xuanbg  
       2019-12-05 17:08:55 +08:00   1
    调试日志随便加,级别只能是 debug。业务日志要整体规划,级别是 info 或 warn。全局捕获的异常和 catch 里面都是 error,别的地方不允许使用 error 级别。
    xuanbg
        6
    xuanbg  
       2019-12-05 17:11:08 +08:00
    另外,异常堆栈要包装起来输出,不允许偷懒直接 print。直接输出控制台看没问题,Kibana 里面找都找不到,根本没法看
    jjianwen68
        7
    jjianwen68  
       2019-12-05 17:21:01 +08:00
    线上运行的系统,大部分都会要求日志级别到 debug 吧,无非日志文件大一点而已
    turi
        8
    turi  
       2019-12-05 17:25:39 +08:00
    项目初期,日志越多越好,
    毕竟需要和各个模块调试,也就是说上面 2 楼说的。

    等稳定了,你可以设置日至等级,也就是说 业务日志了。也就是上面 5 楼说的

    我一般全部打印,小概率问题,就靠这些全的日志了
    Renco
        9
    Renco  
    OP
       2019-12-05 17:31:55 +08:00
    好的 感谢 v 友的回复
    KentY
        10
    KentY  
       2019-12-05 17:34:15 +08:00
    log 有不同的 level, 这个基本各种语言都是支持的.
    你本地开发环境随便你怎么弄,
    dev 的 stage, 一般都是 debug lvl
    test 的 stage, 一般也是 debug, 但是为了跟 Prod 的完全一致, 比如出错误排查情景也要模拟, 也可能跟 Prod 的 lvl 一样
    prod 的 stage, 看你们的要求了, 一般是 info 这类的
    日志非常有用, 比如当你的应用出问题了, 通过日志信息会快速定位问题.
    KentY
        11
    KentY  
       2019-12-05 17:35:15 +08:00
    @jjianwen68 生产系统一般没有设置 debug 的. 不是文件大点, 是可能把硬盘撑满的问题. 还有就是安全性, debug 可能把 object 都打印出来.
    jsjscool
        12
    jsjscool  
       2019-12-05 18:12:42 +08:00   1
    一些日志规范

    1. 日志要有分隔符
    2. 避免重复记录
    3. 通过 uuid 和编号来保证日志的连贯性
    4. 日志编码统一用 json
    5. 日志种类需要严格区分
    6. 重要日志需要脱敏

    可以详细看看总结文章: https://blog.it2048.cn/article-log/
    tmackan
        13
    tmackan  
       2019-12-05 18:35:36 +08:00
    @jsjscool
    json 实际在 ternimal 里面不好看,只是 elk 的时候好处理而已,不到 grok
    tmackan
        14
    tmackan  
       2019-12-05 18:38:18 +08:00
    @jsjscool 不过日志脱敏 有必要哈 感谢
    freedomSky
        15
    freedomSky  
       2019-12-06 09:45:29 +08:00
    @tmackan 不脱敏有把密码打出来的:)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2641 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 11:51 PVG 19:51 LAX 03:51 JFK 06:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86