تكوين RollingFileAppender التسجيل المتداول برمجيا

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

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا أعمل على تكوين RollingFileAppender في log4net برمجيا. لدي شيئا من هذا القبيل في الوقت الحالي:

RollingFileAppender fa = new RollingFileAppender();
fa.AppendToFile = true;
fa.RollingStyle = RollingFileAppender.RollingMode.Date;
fa.DatePattern = "yyyyMMdd";
fa.StaticLogFileName = true;
// Set more properties and add the appender to the root repository

وهذا يرفض لفة السجل على أساس التاريخ. إذا كنت تبديل RollingStyle إلى الحجم أو المركب، فإنه سيتم ثم لفة، ولكن فقط على أساس حجم، وليس تاريخ القائمة. لقد حاولت إزالة StaticLogFileName واللعب حولها مع DatePattern دون جدوى.

ولقد لتكوين هذا برمجيا، وأنا لا أعرف عدد appenders في وقت التشغيل، وبالتالي تكوين باستخدام XML، التي كنت قد تمكنت من الحصول على العمل في الماضي، هو عدم الذهاب. أي شخص لديه أي أفكار؟ هل فاتني شيء؟

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

المحلول

وهذا السلوك هو بسبب حقيقة أن RollingFileAppender (والعديد من appenders آخرين، فضلا عن مرشحات) تنفذ <لأ href = "http://logging.apache.org/log4net/release/sdk/log4net.Core.IOptionHandler. أتش تي أم أل "يختلط =" نوفولو noreferrer "> واجهة IOptionHandler التي" تسمح كائن لتأجيل تفعيل خياراتها حتى يتم تعيين كافة الخيارات. هذا مطلوب لمكونات التي الخيارات المتعلقة التي لا تزال غامضة حتى يتم تعيين كافة ".

وأبعد من ذلك: "إن ActivateOptions يجب استدعاء أسلوب على هذا الكائن بعد أن تم تعيين خصائص التكوين. حتى ActivateOptions يسمى هذا الكائن هو في حالة غير محددة ويجب عدم استخدام ".

عند تكوين محولات عبر ملفات XML لن تضطر للتفكير في تنشيط منذ يتم ذلك من قبل مكون log4net.

نصائح أخرى

وأضفت الدعوة إلى ActivateOptions () بعد إعداد appender الملف ولكن قبل إضافة appender إلى التسلسل الهرمي، وعلى ما يبدو للعمل. لماذا تمسك بعض الخيارات دون الدعوة ولكن البعض الآخر لم يفعل هو السؤال ليوم آخر.

scroll top