كيف يمكنني إجبار التمرير عند بدء تشغيل التطبيق مع log4net RolloverfileAppender؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

اطلب من log4net تكوينه في تطبيقنا لاستخدام اسم مختوم تاريخ وحد من حجم الملف 10meg.
يتسبب هذا تلقائيًا في التمرير إلى ملف جديد في منتصف الليل ، وكلما تم الوصول إلى حد 10MEG. أود أيضًا أن أتعامل مع التسجيل إلى ملف جديد في كل مرة يتم فيها بدء التطبيق (أو مغلق).
هل يمكنني الحصول على جميع السلوكيات الثلاثة؟

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

المحلول

تعيين AppendTofile إلى خطأ في ملف التكوين الخاص بك.

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
....
  <appendToFile value="false" />
....
</appender>

تحرير: للإجابة على تعليق كريج:

إذا قمت بإعداد staticlogfilename و countdirection بشكل صحيح (انظر http://logging.apache.org/log4net/release/sdk/log4net.appender.rollingfileappender.html لمزيد) ، ثم تدور الأشياء حسب الرغبة. نقوم بتكوين المسجل في تطبيقنا بشكل برمجي حيث نستخدم هذا ، ولكن هذا ما يبدو عليه الرمز:

Dim Layout As New PatternLayout("%date{yyyy-MM-dd HH:mm:ss,fff} [%-6thread] %-5level %type{2}.%method(%line) - %message%newline") 
Dim Appender As New log4net.Appender.RollingFileAppender()
Appender.File = Path.Combine(FileSystemHelper.LogDirectory, LogFileName)
Appender.Layout = Layout
Appender.AppendToFile = False ' we will start a new one when the program starts'
Appender.Name = "RollingLogFileAppender"
Appender.Threshold = LogLevel() 'May want to set this by configuration'
Appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Size 'This means it will start a new log file each time the log grows to 10Mb'
Appender.MaximumFileSize = "10MB"
Appender.MaxSizeRollBackups = -1 'keep an infinite number of logs'
Appender.StaticLogFileName = True
Appender.CountDirection = 1 ' to reduce rollover costs'
log4net.Config.BasicConfigurator.Configure(Appender)
Appender.ActivateOptions()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top