---
title: "在 rails log 加上有用的標籤資訊"
description: "剛學到 rails 的 tagged logging。你知道可以用下面的方式為 log 加上標籤嗎"
canonical: https://oozou.com/til/tag-rails-logs-with-useful-information-32
locale: zh-Hant
date: 2020-10-13
topic: ruby-on-rails
---

# 在 rails log 加上有用的標籤資訊

> 剛學到 rails 的 tagged logging。你知道可以用下面的方式為 log 加上標籤嗎

Published: 2020-10-13 · Topic: [ruby on rails](https://oozou.com/zh-Hant/til-topics/ruby-on-rails) ([markdown](https://oozou.com/zh-Hant/til-topics/ruby-on-rails.md))

剛學到 rails 的 tagged logging。你知道可以用下面的方式為 log 加上標籤嗎

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

# config/application.rb

你也可以用下面的方式全域套用

```ruby
# 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 標頭）

```ruby
# 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 的價值。

---

Contact OOZOU: hello@oozou.com · +66 2544 0000 · https://oozou.com/zh-Hant/contact

More for AI agents: https://oozou.com/llms.txt · every page has a markdown twin at its URL plus ".md"
