سؤال

أقوم بتطوير حل SharePoint مخصص يتكون من ميزة ومهمة مؤقت (يتم إنشاؤها بواسطة الميزة الموجودة في الميزة النشطة).في الحل الخاص بي أريد استخدام log4net للتسجيل (أعرف عن ULS).

كل شيء على ما يرام مع log4net في الميزة نفسها (فقط وضعت log4net.config بالقرب من web.config وكل شيء على ما يرام)، ولكن ليس لدي أي فكرة على الإطلاق عن كيفية تهيئة log4net من وظيفة المؤقت (مع الأخذ في الاعتبار أنه لا يتم تشغيله بواسطة IIS ولكن بواسطة أوسوتايمر).

هل يمكن لأحد أن يساعدني في العثور على إجابات للأسئلة:

  1. أين يتم تخزين log4net.config وكيف يتم تمريره إلى الوظيفة؟
  2. هل أحتاج إلى تهيئة log4net في كل مرة يتم فيها استدعاء طريقة Execute ()؟

شكرًا!

هل كانت مفيدة؟

المحلول

لقد مر وقت طويل منذ أن استخدمت log4net، ولكن إذا كنت أتذكر جيدًا، فيمكنك تخزين ملف التكوين الخاص بك في أي مكان تريد والسماح لـ log4net بتحميله من هناك أثناء تهيئة المسجل.

1) سيكون المكان الجيد لتخزين ملف التكوين هو المجلد الموجود داخل 12 خلية.ربما مجلد الميزة الخاصة بك.نظرًا لأن المسار إلى هذا الملف لن يتغير، فمن السهل الرجوع إليه باستخدام المسجل.

2) أعتقد أنه سيتعين عليك تهيئة المسجل في كل مرة SPJobDefinition (فئة وظيفة المؤقت) يتم تخزينها داخل قاعدة البيانات عندما لا تعمل.تأتي وظيفة تخزين مهمة المؤقت في قاعدة البيانات من الفئة الأساسية لـ SPJobDefinition SPersistedObject.يجب وضع علامة على متغيرات الأعضاء الخاصة بالفئة الموروثة من SPPersistedObject، والتي يجب تخزينها مع الفئة في قاعدة البيانات، بعلامة [Persisted] يصف.لكن على حد علمي، لا يمكن أن تكون الكائنات المستمرة سوى أنواع بيانات أولية (int، long، string، ...).

لذا فإن تخزين كائن log4net Logger داخل قاعدة البيانات لن يعمل أو على الأقل غير مدعوم.لذا، في كل مرة يتم فيها تحميل مهمتك من قاعدة البيانات، يجب تهيئة كائن المسجل مرة أخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top