尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

进阶技巧:巧用 pretty_backtrace 的 3 个隐藏配置,让异常输出只留下你需要的信息

进阶技巧:巧用 pretty_backtrace 的 3 个隐藏配置,让异常输出只留下你需要的信息 进阶技巧巧用 pretty_backtrace 的 3 个隐藏配置让异常输出只留下你需要的信息【免费下载链接】pretty_backtracePretty your exception backtrace.项目地址: https://gitcode.com/gh_mirrors/pr/pretty_backtrace排查 Ruby 异常时冗长的堆栈总是让人头疼。pretty_backtrace 是一款把异常堆栈美化成可读版本的 Ruby 调试利器它会在每一行堆栈后自动附上局部变量名与值帮你快速定位出错现场。不过大多数用户只用了它的默认配置就收工了其实 pretty_backtrace 的配置里还藏着几个进阶选项能让你像调节音量一样精确控制输出内容让异常信息只保留真正需要的那部分。本文就带你逐一解锁这 3 个隐藏配置。一、先花 30 秒认识 pretty_backtracepretty_backtrace 是一个轻量级 Ruby Gem核心功能只有一个美化异常回溯Backtrace。启用后原本干巴巴的文件:行号会变成带变量上下文的现场报告test.rb:10:in recursive (n 0, str Hi 0!! Hi 0!! Hi 0...): bottom of recursive (RuntimeError) from test.rb:9:in recursive (n 1, str Hi 1!! Hi 1!! Hi 1...)安装和启用都非常简单# Gemfile 中添加 gem pretty_backtracerequire pretty_backtrace PrettyBacktrace.enable也可以直接require pretty_backtrace/enable连 enable 调用都省了。全部配置项都集中在 lib/pretty_backtrace.rb 的CONFIG哈希里README 只给了个详见源码的提示这些参数因此成了名副其实的隐藏配置。二、隐藏配置一effective_lines让长堆栈只美化最近 N 帧适用场景递归很深或调用链很长时美化后的堆栈又长又占日志空间而你往往只关心出错点附近的那几帧。effective_lines默认值为0表示无限把它设为一个正整数后pretty_backtrace 就只对堆栈中最近的 N 帧附加局部变量信息更远的调用帧则退化为普通的一行文本PrettyBacktrace.effective_lines 5 # 只美化最近的 5 帧一行代码长堆栈瞬间瘦身出错现场保留完整变量外围调用链保持紧凑日志噪音大幅下降排查效率反而更高。相关判断逻辑见 lib/pretty_backtrace.rb。三、隐藏配置二truncate_length精确控制变量值显示长度适用场景变量值可能是很长的字符串SQL、JSON、URL 等默认的 20 字符截断要么不够用要么太占篇幅。单行模式下每个变量的值由truncate_length控制截断长度PrettyBacktrace::CONFIG[:truncate_length] 50 # 默认 20调大可以看清关键值调小可以压缩篇幅自由拿捏。如果开启了多行模式则改用multi_line_truncate_length默认 60来截断变量值实现细节见 lib/pretty_backtrace.rb。四、隐藏配置三multi_line 家族多行模式下的信息量调节适用场景单行模式放不下足够信息时多行模式会把出错位置的源码片段、变量明细分开展示并用-指针精准指向出错行PrettyBacktrace.multi_line true多行模式还有几个子配置帮你进一步调节信息量配置项默认值作用file_contentstrue是否展示出错位置的源码片段file_contents_lines2出错行上下各展示几行源码multi_line_truncate_length60多行模式下变量值的截断长度multi_line_indent10附加内容的缩进空格数比如你只想要变量列表、不想要源码片段可以这样关掉PrettyBacktrace.multi_line true PrettyBacktrace.file_contents false开启file_contents时的输出效果大致如下源码、指针、变量一目了然test.rb:11:in recursive [FILE] - 11| raise bottom of recursive 12| end [LOCAL VARIABLES] n 0多行模式相关的完整逻辑可参考 lib/pretty_backtrace.rb官方示例见 test.rb。五、实战组合线上与本地两套推荐模板线上日志短而精只保留最近 3 帧的变量值截短减少日志体积PrettyBacktrace.effective_lines 3 PrettyBacktrace::CONFIG[:truncate_length] 25本地开发全而细多行模式 完整变量 源码上下文排查疑难杂症PrettyBacktrace.multi_line true PrettyBacktrace::CONFIG[:file_contents_lines] 3 PrettyBacktrace.effective_lines 0 # 0 表示不限制六、配置速查与总结最后把 3 个隐藏配置整理成一张速查表方便收藏使用隐藏配置作用推荐用法effective_lines限制美化堆栈帧数线上设为 3~5减少日志噪音truncate_length控制单行变量值长度按字段实际长度调整multi_line家族切换多行展示并调节详情本地调试时开启pretty_backtrace 的价值远不止默认的美化效果。通过effective_lines、truncate_length、multi_line这三个隐藏配置你可以精确控制异常输出包含的信息量线上环境要精简、开发环境要详尽一套工具全部搞定。下次再遇到堆栈刷屏不妨试试这几个配置让异常信息只留下你真正需要的那部分。【免费下载链接】pretty_backtracePretty your exception backtrace.项目地址: https://gitcode.com/gh_mirrors/pr/pretty_backtrace创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表