هناك حاجة إلى السجلات لاستكشاف أخطاء فشل المستندات وإصلاحها، ولكن ليست هناك حاجة لتسجيل النص الكامل.
هناك حاجة إلى سجلات لتحديد أماكن فشل الترجمة، ولكن ليست هناك حاجة لطباعة العقد بالكامل أو رقم المعرف أو رمز التنزيل. يجب أن يجيب السجل على "ما هي المهمة، وفي أي خطوة، ولماذا فشل" بدلاً من أن يصبح مكتبة مستندات ثانية تفتقر إلى إدارة الأذونات.
السجلات مطلوبة لاستكشاف أخطاء فشل ترجمة المستندات وإصلاحها، ولكن ليس من الضروري أن تحتوي السجلات على النص الكامل للعقد أو رقم المعرف أو رمز التنزيل. تشرح هذه المقالة كيفية جعل السجل يجيب على "المهمة التي فشلت وفي أي خطوة ولماذا" دون نسخ مستندات العميل إلى السجل.
القراء المناسبون هم المطورون وموظفو التشغيل والصيانة المسؤولون عن خدمات ترجمة المستندات أو ربط واجهات الترجمة أو الاحتفاظ بسجلات الخلفية. بعد القراءة، يمكنك تصميم مجموعة من حقول القائمة البيضاء، والتحقق من أن السجل لا يُظهر النص الأصلي، وتعيين فترة الاحتفاظ ونطاق الوصول لاستكشاف الأخطاء وإصلاحها.
تستخدم الأمثلة عينات تركيبية لتوضيح طرق المعالجة، وقد تم فحص الكود في بيئة معزولة، لكن هذا لا يمثل ضمانًا لجميع الملفات الحقيقية أو أداء المنتج. قبل معالجة المستندات المهمة، يرجى الاحتفاظ بالنسخ الأصلية ومراجعتها وفقًا للحدود وبنود القبول أدناه.
ما الذي يجب تسجيله في سجل استكشاف الأخطاء وإصلاحها؟ استنتاج جملة واحدة
يسجل السجل فقط الحقول المسموح بها مثل معرف المهمة والمرحلة وفئة الخطأ واستهلاك الوقت، ولكنه لا يسجل محتوى المستند وبيانات الاعتماد.
| حالتك | الممارسات الموصى بها | سبب |
|---|---|---|
| بحاجة إلى معرفة المهمة التي فشلت | تسجيل معرف مهمة داخلية عشوائية | القدرة على تحديد المشاكل دون الكشف عن أسماء ملفات المستخدم أو المسارات |
| تحتاج إلى تحديد المرحلة التي وصلت إليها البطاقة | سجل اسم المرحلة والوقت المستغرق | لا حاجة لكل النص المصدر والترجمة |
| تم رفض الطلب من قبل المنبع | تسجيل فئات الخطأ التي تمت تسويتها | لا ينبغي إدخال محتوى طلب المصادقة الكامل من الدرجة الأولى في السجل |
| تحتاج إلى العودة إلى الأصل لاستكشاف الأخطاء وإصلاحها | استخدام المراجع ضمن نظام متحكم فيه | الروابط التي يمكن تنزيلها بشكل عام بشكل دائم معرضة لخطر التسريب |
ابدأ بالحقول المسموح لها بالتسجيل
يمكن أن تفوت القائمة السوداء الحقول الحساسة الجديدة بسهولة. النهج الأكثر حكمة هو إخراج الحقول المصممة فقط، على سبيل المثال:
- معرف المهمة الداخلية
- مرحلة المعالجة
- فئة الخطأ
- تستغرق وقتًا طويلاً
يستخدم المثال التجميعي أدناه عرض القائمة البيضاء بحيث لا يتم إدخال النص الكامل والرموز المميزة في الإدخال في السجل.
سجل التحقق لم يُظهر النص الأصلي.
import io
import json
import logging
ALLOWED = ("job_id", "stage", "error_code", "elapsed_ms")
def log_record(data):
return {key: data[key] for key in ALLOWED if key in data}
stream = io.StringIO()
logger = logging.getLogger("synthetic-document-job")
logger.handlers.clear()
logger.propagate = False
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(stream)
logger.addHandler(handler)
event = {"job_id": "demo-12", "stage": "parse", "error_code": "BAD_CONTAINER",
"elapsed_ms": 42, "document_text": "synthetic confidential clause",
"access_token": "synthetic-secret"}
logger.info(json.dumps(log_record(event), sort_keys=True))
logged = json.loads(stream.getvalue())
assert logged["error_code"] == "BAD_CONTAINER"
assert "document_text" not in logged
assert "synthetic-secret" not in stream.getvalue()
assert set(logged) <= set(ALLOWED)
logger.removeHandler(handler)
يعدل المثال فقط المسجل التجريبي المسمى ذاتيًا. لا يوصى بمسح المعالج العمومي للتطبيق في مكتبة الأعمال. لا تزال قيم الحقول بحاجة إلى التحقق من الطول والنوع. إذا قمت بحشو النص الكامل للمستخدم في error_code، فلن يحفظك اسم القائمة البيضاء وحده.
معرف الجمعية بدلاً من المحتوى الحساس
يسرد الجدول التالي المتطلبات الشائعة أثناء استكشاف الأخطاء وإصلاحها، بالإضافة إلى السجلات الموصى بها وغير الموصى بها.
| المشاكل التي يتعين التحقيق فيها | السجلات الموصى بها | سجل غير مستحسن |
|---|---|---|
| المهمة التي فشلت | معرف مهمة داخلية عشوائية | اسم الملف الكامل ومسار المستخدم |
| أي مرحلة تستغرق وقتا | المراحل والاستهلاك للوقت | كل فقرة من نص المصدر والترجمة |
| لماذا ترفض Upstream؟ | توحيد فئات الأخطاء | طلب كامل مع رأس مصادقة |
| كيفية العثور على الأصل | المراجع داخل النظام المسيطر عليه | رابط متاح بشكل دائم للتحميل العام |
فترة الاحتفاظ مهمة بقدر أهمية نطاق الوصول
حتى لو لم يحتوي السجل على نص رئيسي، فإن الجمع بين وقت المهمة، واللغة، وحجم الملف يمكن أن يكشف عن معلومات الأعمال. يجب أن تكون السجلات مصحوبة بتحكم في الوصول، وفترات احتفاظ، وعمليات حذف.
أثناء استكشاف المشكلة، ارفع مستوى السجل مؤقتا، وحدد متى تستأنف العمليات، وتجنب بقاء وضع التصحيح في بيئة الإنتاج لفترة طويلة.
يوفر تكامل الترجمة أيضا سجلات واضحة ومقيدة
عند التكامل مع أومني دوك (إدخال المنتج)، يتم تسجيل الارتباط بين المهام المحلية والبعيدة فقط؛ لا ينبغي نسخ الملفات التي يرفعها المستخدمون إلى السجلات لتسهيل استكشاف المشاكل.
يمكن لتقرير المشكلة الجيد أن يشرح مرحلة الفشل وحالات التكرار، مع ضمان تدفق مستندات العميل فقط ضمن مسارات المعالجة المصرح بها.
المراجع: Python logging.
📊 مقارنة النواة
| الطريقة | المزايا | المخاطر |
|---|---|---|
| القائمة السوداء | طريقة الكتابة بسيطة وسهلة الفهم | الحقول الحساسة التي تظهر بسهولة تغفل عن |
| القائمة البيضاء | فقط الحقول المصممة هي المخرجة، مع حدود واضحة | من الضروري التخطيط للحقول مسبقا والتحقق من طول ونوع قيم الحقول |
🎯 أي طريقة تناسبك؟
إذا كنت بحاجة إلى العثور على مهمة ترجمة
يسجل معرفات المهام الداخلية العشوائية ومراحل الفشل، دون تسجيل اسم الملف الكامل أو مسار المستخدم.
إذا أردت التعامل مع أخطاء واجهة الواجهة العليا
تسجيل فئات الأخطاء الموحدة، ولكن لا تسجل الطلبات الكاملة باستخدام رؤوس المصادقة.
إذا كنت تحاول حل المشكلات عبر الإنترنت
رفع مستويات الأخشاب مؤقتا واستعاد الترميم فور الفحص.
إذا أردت تصميم حقول السجل
أعط الأولوية للقائمة البيضاء وتحقق من طول ونوع قيم الحقول.
❓ الأسئلة الشائعة (الأسئلة الشائعة)
1. هل يمكن للسجل تسجيل اسم الملف الكامل للمستخدم؟
غير موصى به. لا ينصح بالاسم الكامل للملف والمسار للتسجيل؛ يمكنك استخدام معرفات مهام داخلية عشوائية للربط بدلا من ذلك.
2. لماذا لا ينصح باستخدام القائمة السوداء لتصفية الحقول الحساسة؟
تميل القوائم السوداء إلى تجاهل الحقول الحساسة الجديدة، بينما تخرج القوائم البيضاء فقط الحقول المصممة، مما يجعلها أكثر موثوقية.
3. هل تحتاج فقط لإدارة وقت المهمة وحجم الملف؟
نعم. معا، قد تكشف هذه المعلومات أيضا عن تفاصيل الأعمال، ويجب أن تكون السجلات مصحوبة بعمليات التحكم في الوصول، وفترات الاحتفاظ، وعمليات الحذف.
4. هل يمكن إبقاء سجلات التصحيح مفتوحة لفترة طويلة أثناء استكشاف المشكلة؟
غير موصى به. بعد ترقية مستوى السجل مؤقتا، من المهم تحديد متى يجب استئناف وضع التصحيح لتجنب ترك وضع التصحيح في بيئة الإنتاج لفترة طويلة.
5. هل يمكنك مسح المعالج العالمي من قاعدة بيانات الأعمال؟
غير موصى به. المثال يعدل فقط مسجل النماذج التجريبية الذي أطلقت عليه اسم نفسك؛ يجب ألا تفرغ مكتبة الأعمال من تطبيق المعالج العالمي.
📝 ملخص
عند استكشاف أخطاء الترجمة، يجب أن يجيب السجل على المهمة والمرحلة والسبب، بدلا من حفظ محتوى المستند. استخدام حقول القائمة البيضاء، والاستشهادات المحكمة، وفترات الاحتفاظ الواضحة أمر ضروري لتحقيق التوازن بين كفاءة حل المشكلات وأمان المستندات.
اختبر الآن: ارفع مستندك لتبدأ الترجمة، مع الحفاظ على التنسيق الأصلي


