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 รวมถึงวิธีใช้เมธอด config เพื่อตั้งค่าแบบกำหนดเองให้กับแอปพลิเคชันของคุณ
3. ปรับแต่ง log tag
การปรับแต่ง log tag ให้คุณเพิ่มข้อมูลเฉพาะที่เกี่ยวข้องกับแอปพลิเคชันของคุณลงใน log ได้ ในส่วนนี้เราจะพูดถึงวิธีปรับแต่ง log tag ด้วยเมธอด 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 สูงสุด