تكوين log4net برمجياً لكتابة نفس الرسائل إلى ملفين منفصلين

StackOverflow https://stackoverflow.com/questions/1415535

  •  06-07-2019
  •  | 
  •  

سؤال

في الوقت الحالي، أقوم بتكوين log4net برمجيًا عن طريق إنشاء مثيل RollingFileAppender ثم استدعاء BasicConfigurator.Configure().يعمل هذا بشكل رائع، ولكني أحاول إنشاء ملفين متطابقين - أحدهما في دليل ذو طابع زمني يتم إنشاؤه لكل تشغيل للتطبيق، والآخر في موقع ثابت لتسهيل على المطور متابعة السجل الأحدث.(يُستخدم هذا فقط لإجراء الاختبارات الآلية، لذا فإن إنشاء كومة ضخمة من الأدلة لا يشكل مصدر قلق)

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

الكود الحالي الخاص بي:

IAppender appender = new RollingFileAppender
{
    ...
}

appender.ActivateOptions();

BasicConfigurator.Configure(appender);
هل كانت مفيدة؟

المحلول

على الرغم من أنه من الممكن تمامًا القيام بذلك برمجيًا، إلا أنني لا أرغب في شرح واجهة برمجة التطبيقات هنا، فمن السهل البحث عنها.

الطريقة الأسهل والأكثر مرونة هي تكوين مُلحقين لقراءته من ملف التكوين.يمكنك فرض ذلك عن طريق استدعاء log4net.Config.XmlConfigurator.Configure() ويمكنك أيضًا تمرير XmlElement إلى Configure() إذا كنت تريد الاحتفاظ بكل ذلك في التعليمات البرمجية.

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