البرمجة

تسجيل الكائنات المعقدة باستخدام Serilog

لتسجيل الكائن المعقد باستخدام Serilog في تنسيق JSON صالح، يمكنك استخدام خاصية @ في قالب السجل. هذه الخاصية تسمح بتسجيل الكائنات ككائنات JSON بدلاً من نص عادي. ومن أجل ذلك، يتعين عليك تنسيق بنية البيانات بحيث تتوافق مع ما تتوقعه Serilog.

في مثالك، يبدو أن Serilog لا يعرف كيفية تسجيل كائن LogRequestParameters بشكل JSON صالح بسبب تنسيق البيانات الذي تقدمه. لحل هذه المشكلة، يجب تغيير هيكل البيانات قليلاً وتنظيم السجل بطريقة تتوافق مع توقعات Serilog.

إليك كيف يمكن تعديل هيكل البيانات وتنسيق السجل للحصول على JSON صالح:

csharp
public class LogRequestParameters { public string RequestID { get; set; } public string Type { get; set; } public string Level { get; set; } public string DateTime { get; set; } public string MachineName { get; set; } public RequestData RequestData { get; set; } // تغيير اسم الخاصية لتجنب التعارض مع اسم الكلاس } public class RequestData // تغيير اسم الكلاس لتجنب التعارض مع اسم الخاصية { public string URLVerb { get; set; } }

ثم، تقوم بتنسيق السجل على النحو التالي:

csharp
Serilog.Log.Information("LogRequestParameters: {@LogRequestParameters}", logRequestParameters);

بهذه الطريقة، يجب أن يتم تسجيل الكائن بتنسيق JSON صالح مثل هذا:

json
{ "LogRequestParameters": { "RequestID": "bf14ff78-d553-4749-b2ac-0e5c333e4fce", "Type": "Request", "Level": "Debug", "DateTime": "9/28/2016 3:12:27 PM", "MachineName": "DXBKUSHAL", "RequestData": { "URLVerb": "GET /Violation/UnpaidViolationsSummary" } } }

هذا الشكل يتوافق مع JSON ويتجنب المشكلات التي كنت تواجهها سابقًا مع التكرار غير المرغوب فيه لأسماء الكلاسات والخصائص. باستخدام هذه الطريقة، يمكنك تسجيل الكائنات المعقدة بشكل صحيح ومنظم باستخدام Serilog.

المزيد من المعلومات

بالتأكيد، إليك المزيد من المعلومات حول كيفية استخدام Serilog لتسجيل الكائنات المعقدة بتنسيق JSON صالح.

عند استخدام Serilog، يمكنك تكوين مختلف مصادر السجل ومستويات السجل والمخرجات بسهولة. يمكنك تكوين Serilog لتخريج السجلات إلى مصادر مختلفة مثل ملفات النص أو قواعد البيانات أو الخدمات السحابية، بما في ذلك تنسيقات JSON.

في مثالنا، استخدمنا قالبًا يستخدم {@} لتسجيل الكائن بتنسيق JSON. هذا يعني أن Serilog سيحول الكائن إلى سلسلة JSON صالحة تلقائيًا أثناء التسجيل.

تحتوي مخرجات السجل في النهاية على سجلات JSON صالحة يمكن استخدامها للتحليل أو الاستخدام في أي سياق تحتاج إليه.

علاوة على ذلك، يمكنك تكوين Serilog لتتناسب مع احتياجات تطبيقك الخاصة، بما في ذلك تخصيص مستويات السجل وتنسيق السجلات ومصادر السجل.

هناك العديد من الخيارات المتاحة لتكوين Serilog واستخدامه بطرق مختلفة. يمكنك قراءة المزيد عن Serilog وكيفية استخدامه في الوثائق الرسمية أو الموارد عبر الإنترنت.

في النهاية، استخدام Serilog لتسجيل السجلات بتنسيق JSON صالح يمكن أن يجعل من السهل تحليل البيانات وفهمها، ويمكن أن يكون ذلك مفيدًا جدًا في تطبيقاتك ومشاريعك البرمجية.

زر الذهاب إلى الأعلى