MCP Academy · บทเรียน

บันทึกแบบมีโครงสร้างที่ค้นหาได้

ส่งบันทึก JSON พร้อมข้อมูลเชื่อมโยงคำขอ

บทเรียน 2 จาก 413 ขั้นตอน

บันทึกแบบมีโครงสร้างที่ค้นหาได้ เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

บันทึกที่นำไปใช้ได้จริง

บันทึกข้อความธรรมดาอ่านง่ายสำหรับมนุษย์ แต่จัดการได้ยากเมื่อมีข้อมูลจำนวนมาก บันทึกแบบมีโครงสร้างจะเก็บแต่ละเหตุการณ์เป็นข้อมูล ทำให้เครื่องสามารถกรองและค้นหาได้อย่างรวดเร็ว 🔎

เหตุใด JSON จึงเป็นตัวเลือกที่ดี

ส่งออกบันทึกแต่ละบรรทัดเป็น ออบเจ็กต์ JSON ทุกฟิลด์จะค้นหาได้ จึงสามารถสืบค้นตามเครื่องมือ สถานะ หรือระยะเวลาได้โดยไม่ต้องแยกวิเคราะห์ข้อความที่เปราะบาง

ส่วนประกอบของเหตุการณ์ในบันทึก

เหตุการณ์ที่ดีควรมี การประทับเวลา ระดับ ข้อความ และฟิลด์บริบท เมื่อรวมกันแล้ว สิ่งเหล่านี้จะบอกได้ว่าเกิดอะไรขึ้น เมื่อใด และเพราะเหตุใด

{"ts": "2026-01-01T10:00:00Z",
 "level": "info",
 "msg": "tool called",
 "tool": "search"}

เลือกระดับที่เหมาะสม

ใช้ ระดับบันทึกอย่างมีจุดประสงค์: debug สำหรับรายละเอียด info สำหรับการทำงานตามปกติ warning สำหรับปัญหาที่ควรระวัง และ error สำหรับความล้มเหลว ระดับเหล่านี้ช่วยให้คุณเพิ่มหรือลดเสียงรบกวนได้

ID สำหรับเชื่อมโยง

กำหนด ID สำหรับเชื่อมโยง ที่ไม่ซ้ำกันให้แต่ละคำขอ แล้วประทับ ID นี้ลงในบันทึกทุกรายการที่คำขอนั้นสร้างขึ้น จากนั้นการค้นหาเพียงครั้งเดียวก็จะแสดงเรื่องราวทั้งหมดของการเรียกครั้งเดียวได้

สร้าง ID

UUID เหมาะสำหรับใช้เป็น ID สำหรับเชื่อมโยง เพราะมีความไม่ซ้ำกันมากพอที่จะไม่ชนกันระหว่างคำขอต่าง ๆ

import uuid

request_id = str(uuid.uuid4())
print(request_id)

บันทึกไปยัง stderr ไม่ใช่ stdout

เมื่อสื่อสารผ่าน stdio, stdout จะใช้ส่งโปรโตคอล MCP เอง ให้ส่งบันทึกไปยัง stderr เสมอ เพื่อไม่ให้บันทึกไปทำให้ข้อความ JSON-RPC เสียหาย

มอดูล logging ของ Python

มอดูล logging ในตัวของ Python มีระดับและตัวจัดการให้ใช้ได้ทันที กำหนดให้ตัวจัดการส่งข้อมูลไปยัง stderr แล้วคุณก็ทำไปได้เกือบครึ่งทาง

import logging, sys

logging.basicConfig(stream=sys.stderr,
                    level=logging.INFO)
log = logging.getLogger("mcp")

เพิ่มฟิลด์ ไม่ใช่ข้อความ

อย่ายัดค่าต่าง ๆ ลงในข้อความโดยตรง ให้ส่งค่าเหล่านั้นเป็น ฟิลด์เพิ่มเติม เพื่อให้แต่ละค่าคงเป็นคอลัมน์ที่ค้นหาได้แยกจากกันในภายหลัง

log.info("tool finished",
         extra={"tool": "search",
                "ms": 42})

อย่าบันทึกข้อมูลลับเด็ดขาด

บันทึกมีการส่งต่อและคงอยู่เป็นเวลานาน ดังนั้นให้ ปกปิดโทเค็น คีย์ และข้อมูลส่วนบุคคลก่อนเขียนลงบันทึก ข้อมูลลับที่รั่วไหลในบันทึกถือเป็นการละเมิดความปลอดภัยอย่างแท้จริง 🔒

ให้หนึ่งเหตุการณ์อยู่หนึ่งบรรทัด

เขียน ออบเจ็กต์ JSON หนึ่งรายการต่อหนึ่งบรรทัด รูปแบบที่แบ่งข้อมูลด้วยบรรทัดนี้เป็นสิ่งที่ระบบส่งบันทึกและเครื่องมือค้นหาคาดว่าจะรับข้อมูลได้อย่างถูกต้อง

ตรวจสอบอย่างรวดเร็ว

มีรายละเอียดหนึ่งอย่างที่ทำให้ผู้เขียน MCP หลายคนสะดุด

สรุปทบทวน

คุณได้เรียนรู้การบันทึกเป็น JSON ที่ค้นหาได้: หนึ่งเหตุการณ์ต่อหนึ่งบรรทัด ระดับที่มีประโยชน์ ID สำหรับเชื่อมโยง ข้อมูลลับที่ปกปิดแล้ว และการส่งออกไปยัง stderr 📋

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “บันทึกแบบมีโครงสร้างที่ค้นหาได้” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “บันทึกแบบมีโครงสร้างที่ค้นหาได้” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “บันทึกแบบมีโครงสร้างที่ค้นหาได้”

ส่งบันทึก JSON พร้อมข้อมูลเชื่อมโยงคำขอ คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “บันทึกแบบมีโครงสร้างที่ค้นหาได้” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม

ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สิ่งที่ควรวัดในเซิร์ฟเวอร์
  2. บันทึกแบบมีโครงสร้างที่ค้นหาได้
  3. ติดตามการเรียกเครื่องมือตั้งแต่ต้นจนจบ
  4. แจ้งเตือนเมื่อเกิดความล้มเหลวหรือการใช้งานในทางที่ผิด
← กลับไปที่ MCP Academy