สำรองข้อมูลด้วยการ Logging File

 

            Logging คือการเก็บข้อมูลที่ต้องการไว้สำหรับอ้างอิง หรือสำรองไว้ ซึ่งข้อมูลที่จะเก็บนั้นมักจะเป็นข้อความอธิบายการทำงานของระบบสั้นๆได้ใจความ อย่างเช่น IP หมายเลข xxx เข้ามาใช้บริการหน้าเว็บวันที่ xxx, ลูกค้าหมายเลข xxx จ่ายเงินเสร็จเรียบร้อยวันที่ yyy, เกิดปัญหากับระบบวันที่ xxx ในส่วน zzz เป็นต้น การ logging นั้นสามารถเก็บข้อมูลในรูป text file หรือเก็บข้อมูลลงฐานข้อมูลก็ได้ แต่ผมแนะนำให้เก็บข้อมูลในรูป text file ดีกว่า เหตุผลเพราะถ้าเราเก็บข้อมูลลงฐานข้อมูล เกิดว่าฐานข้อมูลที่ใช้อยู่มีปัญหาจะทำให้ ทั้งข้อมูลที่จะต้องเก็บลงฐานข้อมูลและข้อมูลที่เราจะ logging file เสียหายทั้งหมดทำให้เราไม่ทราบว่าข้อมูลที่เราจะเก็บนั้นเป็นอย่างไร

 

ลองคิดเล่นๆ เราได้ทำการสร้างเว็บแอพริแคชั่น สำหรับสั่งซื้อของบนเว็บ

  1. ลูกค้าทำการสั่งซื้อของ และกดยืนยัน
  2. ระบบจะเริ่มทำรายการส่งข้อมูลไปค้นหาและตัดเงินกับทางบัญชีธนาคารของลูกค้า
  3. เก็บข้อมูลที่ได้ลงฐานข้อมูล
  4. แสดงผลลัพธ์ว่าได้รับเงินแล้วไปยังหน้าเว็บที่ลูกค้าเปิดอยู่
  5. ระบบส่งสินค้าไปให้ลูกค้า ระบบ happy ได้เงิน ลูกค้า happy ได้สินค้าที่ต้องการ ต่อไปก็จะกลับมาซื้อของที่ระบบอีก

 

เสร็จสิ้นกระบวนการ …ดูเหมือนว่าไม่จำเป็นต้องเก็บ logging file ใช่ไหม ?

ถ้าคิดงั้นมาดูตัวอย่างปัญหากัน จากตัวอย่างแรก

  1. ลูกค้าทำการสั่งซื้อของ และกดยืนยัน
  2. ระบบจะเริ่มทำรายการส่งข้อมูลไปค้นหาและตัดเงินกับทางบัญชีธนาคารของลูกค้า
  3. เก็บข้อมูลที่ได้ลงฐานข้อมูล  แต่เกิดปัญหาไม่สามารถใส่ข้อมูลลงฐานข้อมูลได้
  4. แสดงผลลัพธ์ผิดพลาดไปยังหน้าเว็บที่ลูกค้าเปิดอยู่
  5. ลูกค้าโทรให้ระบบตรวจสอบ เพราะจ่ายเงินไปแล้วแต่ระบบแสดงผลบอกว่ายังไม่ได้รับเงิน
  6. ระบบทำการตรวจสอบกับฐานข้อมูล แต่ไม่พบการทำรายการนั้น ระบบจึงตอบยืนยันไปว่าลูกค้ายังไม่ได้จ่ายเงิน
  7. ลูกค้าไม่ happy อาจไปฟ้องร้อง แล้วไม่กลับมาซื้อสินค้าที่ระบบอีก นอกจากนั้นยังบอกต่อไปยังคนรู้จัก ว่าเว็บนี้ซื้อของจ่ายเงินแล้วไม่ได้รับสินค้า ระบบเสียลูกค้าไปและชื่อเสียงของเว็บไม่น่าเชื่อถือ

 

แล้วเราจะแก้ปัญหาดังกล่าวได้อย่างไร ลองมาดูปัญหาแรกกันอีกที…

  1. ลูกค้าทำการสั่งซื้อของ และกดยืนยัน
  2. ระบบจะเริ่มทำรายการส่งข้อมูลไปค้นหาและตัดเงินกับทางบัญชีธนาคารของลูกค้า
  3. ทำการเก็บข้อมูลที่ได้ลง logging file
  4. เก็บข้อมูลที่ได้ลงฐานข้อมูล  แต่เกิดปัญหาไม่สามารถใส่ข้อมูลลงฐานข้อมูลได้
  5. ทำการเก็บข้อมูลปัญหาที่พบลง logging file
  6. แสดงผลลัพธ์ผิดพลาดไปยังหน้าเว็บที่ลูกค้าเปิดอยู่
  7. ลูกค้าโทรให้ระบบตรวจสอบ เพราะจ่ายเงินไปแล้วแต่ระบบแสดงผลบอกว่ายังไม่ได้รับเงิน
  8. ระบบทำการตรวจสอบกับฐานข้อมูล แต่ไม่พบการทำรายการนั้น จึงทำการตรวจสอบจาก logging file แล้วพบว่าการจ่ายเงินเสร็จสินแล้ว แต่เกิดปัญหาตอนเก็บข้อมูลลงฐานข้อมูล
  9. แก้ไขปัญหาที่เกิดกับระบบ และโทรบอกลูกค้าว่าจ่ายเงินเสร็จเรียบร้อยแล้ว จากนั้นส่งสินค้าไปให้ลูกค้า
  10. ลูกค้า happy ได้รับของและกลับมาซื้อของที่ระบบอีก ระบบ happy ยังคงรักษาชื่อเสียงและลูกค้าไว้ได้ แถมยังรู้ปัญหาที่เกิดกับระบบเพื่อการแก้ไขอีกด้วย

 

จะเห็นได้ว่าการ Logging file นั้นมีประโยชน์มากมายจริงๆ จากประสบการณ์การทำงานของผมก็ได้เจ้า logging file นี่ละช่วยชีวิตไว้หลายๆครั้ง ในการตรวจสอบปัญหากับระบบ ต่อไปผมจะสาธิตทดลองสร้างเจ้า logging file อย่างง่ายๆให้ชมกัน ซึ่ง tool แต่ละตัวที่ผมจะใช้สร้าง logging file นี้ผมลองทดสอบแล้วพบว่าประสิทธิภาพการทำงานของ tool แต่ละตัวทำได้อย่างดีเยี่ยมครับ

 

  • การสร้าง logging file สำหรับ Java ด้วย Log4j
  • การสร้าง logging file สำหรับ .Net ด้วย Enterprise Architect tool
  • การสร้าง logging file สำหรับ PHP ด้วย Log4php

 

 

 

Related Post
October 11th, 2008  |  by pat@codeburning.com  |  Published in TECHNICAL

Post a Comment



ข้อมูลข่าวสาร

คำค้นยอดนิยม

Copyright Notice

  • สิทธิ์ในการเผยแพร่เป็นของท่าน
  • สิทธิ์ในทางพาณิชย์ไม่ได้เป็นของท่าน
  • สิทธิ์ในการเปลี่ยนแปลงไม่ได้เป็นของท่าน

Creative Commons License
Creative Commons Attribution 3.0