OOZOU
与我们联系
返回 TIL 列表
ruby on rails

在 rails log 加上有用的标签信息

October 13, 2020

刚学到 rails 的 tagged logging。你知道可以用下面的方式为 log 加上标签吗

logger.tagged('Your Tag') { logger.info('Message') }

config/application.rb

你也可以用下面的方式全局应用

# config/application.rb
config.log_tags = [:method_on_request_object, lambda { |request| request.method.modifier_method }]

config/application.rb

把 client 的设备 OS 和 OS 版本信息加进 log(需要 client 发送 X-OS 和 X-OS-Version 请求头)

# config/application.rb
config.log_tags = [ :request_id, lambda { |request| "#{request.headers['HTTP_X_OS']} #{request.headers['HTTP_X_OS_VERSION']}" } ]

在 production 环境中,可以在 config environments production.rb 文件加入特定设置,以优化 logging 和性能。

1. log tags 简介

Log tags 是 Rails 一项强大的功能,让你可以在 log 中加入自定义信息,使调试和理解应用程序行为变得更容易。通过 log tags,你可以把相关的 log 消息分门别类,让 log 更易读、更有用。在这一节,我们会介绍 log tags 的概念,并说明如何在你的 Rails 应用程序中使用它们。

2. 设置 Rails 组件

设置 Rails 组件是构建应用程序的重要一环。在这一节,我们会讨论如何设置各种 Rails 组件,包括 application、environment 和 middleware。我们也会说明如何使用 config 方法为你的应用程序创建自定义设置。

3. 自定义 log tags

自定义 log tags 让你可以在 log 中加入与你的应用程序相关的特定信息。在这一节,我们会讨论如何用 log_tags 方法自定义 log tags。我们也会说明如何使用 Proc 和能响应 to_s 的对象,为 log 加入动态信息。

4. log 标签示例

Log tagging 是很灵活的功能,可以用各种方式改善你的 log。在这一节,我们会提供在不同场景使用 log tags 的示例,例如记录对外部 API 的请求、后台任务和用户信息。我们也会说明如何用 log tags 为多租户应用程序调试。

5. log tags 的最佳实践

要有效使用 log tags,需要遵循一些最佳实践,确保你的 log 易读且有用。在这一节,我们会讨论使用 log tags 的最佳实践,包括如何让 log 保持精简、如何使用有意义的标签名称,以及如何避免过度加标签。我们也会说明如何把 log tags 和其他 logging 工具、技巧结合使用,充分发挥 log 的价值。

更多关于 ruby on rails 的笔记

ruby on railsFebruary 10, 2022

用 Pundit Policy 管理 permitted parameters、默认值与各 action 的参数

要管理 permitted params,你可以在你的 policy 中加入 permitted\attributes 和 permitted\attributes\for\#{action},例如

ruby on railsJanuary 31, 2022

在 Turbo 中用 `requestSubmit` 提交表单

Turbo 会监听 form 上的 submit 事件。因此,用 JS 提交表单时,请一律使用 requestSubmit。

ruby on railsJanuary 19, 2022

在 GitHub Actions 中让 Rubocop 与 ESLint 忽略 bundled gems

Rails 项目在 GitHub actions 中通常会把 gems 安装到 vendor 目录,方便在后续运行时使用缓存。

有项目想法吗?

我们很想听听您正在做的产品。

开始对话hello@oozou.com
OOZOU Logo

曼谷 · 新加坡 · 香港

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

服务

  • Web 开发
  • AI 智能体与生成式 AI
  • 移动应用开发
  • 数据分析与工程
  • UI/UX 与产品设计
  • 数字化转型

公司

  • 关于我们
  • 加入我们
  • 博客
  • 案例研究
  • Today I Learned
  • 联系我们

更多

  • 行业
  • 合作伙伴网络
© 2026 OOZOU. 版权所有。
隐私政策行为准则反贿赂反贪腐政策