OOZOU
ติดต่อเรา
กลับไปหน้า TIL
ruby on rails

Tag log ของ rails ด้วยข้อมูลที่มีประโยชน์

13 ตุลาคม 2563

เพิ่งได้รู้จัก tagged logging ใน rails รู้ไหมว่าคุณ tag log ได้แบบนี้

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

config/application.rb

คุณยังทำแบบ global ได้ด้วย

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

config/application.rb

เพิ่มข้อมูล OS และเวอร์ชัน OS ของอุปกรณ์ฝั่ง client ลงใน log (client ต้องส่ง header 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 environment ให้เพิ่มการตั้งค่าเฉพาะไว้ในไฟล์ config environments production.rb เพื่อปรับ logging และประสิทธิภาพให้เหมาะสม

1. รู้จักกับ log tag

log tag เป็นฟีเจอร์ที่มีประโยชน์มากใน Rails ช่วยให้คุณเพิ่มข้อมูลที่ต้องการลงใน log จึง debug และเข้าใจการทำงานของแอปได้ง่ายขึ้น การใช้ log tag ช่วยให้คุณจัดกลุ่มข้อความ log ที่เกี่ยวข้องกัน และทำให้ log อ่านง่ายและมีประโยชน์มากขึ้น ในส่วนนี้เราจะแนะนำแนวคิดของ log tag และอธิบายวิธีใช้งานใน Rails application

2. ตั้งค่า component ต่าง ๆ ของ Rails

การตั้งค่า component ต่าง ๆ ของ Rails เป็นส่วนสำคัญของการเซ็ตอัปแอปพลิเคชัน ในส่วนนี้เราจะพูดถึงวิธีตั้งค่า component ต่าง ๆ ของ Rails ทั้ง application, environment และ middleware รวมถึงวิธีใช้ Method config เพื่อตั้งค่าแบบกำหนดเองให้กับแอปพลิเคชัน

3. ปรับแต่ง log tag

การปรับแต่ง log tag ให้คุณเพิ่มข้อมูลเฉพาะที่เกี่ยวข้องกับแอปพลิเคชันลงใน log ได้ ในส่วนนี้เราจะพูดถึงวิธีปรับแต่ง log tag ด้วย Method log_tags รวมถึงวิธีใช้ Proc และ object ที่ตอบสนองต่อ to_s เพื่อเพิ่มข้อมูลแบบ dynamic ลงใน log

4. ตัวอย่างการ tag log

การ tag log เป็นฟีเจอร์ที่ยืดหยุ่นและใช้ได้หลายแบบเพื่อทำให้ log ดีขึ้น ในส่วนนี้เราจะยกตัวอย่างการใช้ log tag ในสถานการณ์ต่าง ๆ เช่น การ log request ที่ยิงไปยัง API ภายนอก, background job และข้อมูลผู้ใช้ รวมถึงวิธีใช้ log tag เพื่อ debug แอปพลิเคชันแบบ multi-tenant

5. Best practice สำหรับ log tag

การใช้ log tag ให้ได้ผลต้องอาศัย best practice บางอย่างเพื่อให้ log อ่านง่ายและมีประโยชน์ ในส่วนนี้เราจะพูดถึง best practice ของการใช้ log tag ทั้งวิธีทำให้ log กระชับ วิธีตั้งชื่อ tag ให้สื่อความหมาย และวิธีหลีกเลี่ยงการ tag มากเกินไป รวมถึงวิธีใช้ log tag ร่วมกับเครื่องมือและเทคนิคการ log อื่น ๆ เพื่อให้ได้ประโยชน์จาก log สูงสุด

อ่านบทความเกี่ยวกับ ruby on rails เพิ่มเติม

ruby on rails10 กุมภาพันธ์ 2565

ใช้ Pundit Policy จัดการ permitted parameters ทั้งค่า default และแยกราย action

จัดการ permitted params ได้ด้วยการเพิ่ม permitted\attributes และ permitted\attributes\for\#{action} ใน policy เช่น

ruby on rails31 มกราคม 2565

ใช้ `requestSubmit` สำหรับการ submit form ร่วมกับ Turbo

Turbo คอยฟัง event submit ที่เกิดขึ้นบน form ดังนั้นให้ใช้ requestSubmit เสมอเมื่อจะ submit form ด้วย JS

ruby on rails19 มกราคม 2565

ให้ Rubocop และ ESLint ignore gem ที่ bundle ไว้ใน GitHub Actions

โปรเจกต์ Rails มักติดตั้ง gem ลงใน vendor directory ใน GitHub actions เพื่อให้ cache ไว้ใช้ในรอบถัด ๆ ไปได้

มีโปรเจกต์ในใจแล้วหรือยัง?

เล่าให้เราฟังเกี่ยวกับโปรเจกต์ใหม่ของคุณ

ติดต่อเราhello@oozou.com
OOZOU Logo

กรุงเทพฯ · สิงคโปร์ · ฮ่องกง

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 อาคารวันซิตี้เซ็นเตอร์
ถนนเพลินจิต
กรุงเทพฯ 10330
ประเทศไทย
+66 2544 0000
hello@oozou.com

บริการ

  • Web Development
  • AI Agents & Generative AI
  • Mobile App Development
  • Data Analytics & Engineering
  • UI/UX & Product Design
  • Digital Transformation

บริษัท

  • เกี่ยวกับเรา
  • ร่วมงานกับเรา
  • บทความ
  • Case Studies
  • Live Demos
  • Today I Learned
  • ติดต่อเรา

เพิ่มเติม

  • อุตสาหกรรม
  • Partner Program
© 2026 OOZOU สงวนลิขสิทธิ์
นโยบายความเป็นส่วนตัวจรรยาบรรณในการทำงานนโยบาย ABAC