Tag log ของ rails ด้วยข้อมูลที่มีประโยชน์
เพิ่งได้รู้จัก 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 สูงสุด