سؤال

وأنا أحاول أن استخدام log4net في تطبيق ASP.NET مع Visual Studio 2005. لقد أعلنت مثيل مسجل مثل ذلك:

Private Shared ReadOnly log As ILog = LogManager.GetLogger("")

وأنا أحاول أن استخدامها على النحو التالي:

If log.IsDebugEnabled Then
   log.Debug("Integration Services Constructed")
End If

وهنا هو التكوين لي:

<log4net>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingFileAppender" />
    </root>

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="..\\logs\\logfile.log"/>
        <appendToFile value="true"/>
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="10"/>
        <maximumFileSize value="1MB"/>
        <staticLogFileName value="true"/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="FATAL" />
        </filter>
    </appender>

</log4net>

ومما يؤسف له، log.IsDebugEnabled غير صحيح دائما.
كيف يمكنني تكوين log4net حتى أستطيع أن تسجيل رسائل التصحيح فقط؟

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

المحلول

وقبل الدعوة LogManager.GetLogger ( "")

لديك للاتصال log4net.Config.XmlConfigurator.Configure ()؛ في التطبيق ASP.NET ربما كنت تريد أن تضع هذه الدعوة في Application_Start

نصائح أخرى

نعم، أن تفعل ذلك مثل انسون قال. أيضا، إذا كنت تتصل تكوين في مكتبة فئة يمكنك القيام بذلك عن طريق إضافة سمة إلى صفك:

[assembly: XmlConfigurator(Watch = true)]

وإذا كنت تستخدم ملف log4net.config، واستخدامها من هذا القبيل بدلا من ذلك:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

إذا كنت تستخدم ملف تكوين منفصلة عن log4net، قيام بذلك: بعد اتباع جميع تعليمات الإعداد أخرى، تأكد من أن ش انقر بزر الماوس الأيمن على الملف في حل استوديو البصرية المستكشف، حدد خصائص، توسيع خيار "خيارات متقدمة" مجموعة، تعيين "نسخ إلى الناتج دليل" القيمة مثل "نسخ دائما". وأن تفعل السحر ... :) الهتافات !!

إذا كنت تقوم log4net تصل في التعليمات البرمجية بدلا من ملف التكوين، يمكنك الاتصال log4net.Config.BasicConfigurator.Configure قبل GetLogger.

وVB.NET -

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 

استخدم هذا في أي وسيلة قبل استخدام تسجيل:

وlog4net.Config.XmlConfigurator.Configure ()؛

في App.Config، يجب أن تكون الإعدادات:

<root>
      <level value="ALL" />
      <appender-ref ref="AppenderName" />
    </root>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top