ماذا لديك في التكوين log4net الخاصة بك؟ المأجورون، والتحسينات، والملاحظات؟

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

سؤال

وهذا هو بلدي ملف التكوين log4net

<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="true">
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
    <filter type="log4net.Filter.LevelRangeFilter">
      <acceptOnMatch value="true" />
      <levelMin value="DEBUG" />
      <levelMax value="FATAL" />
    </filter>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %5rms [%-17.17t] %-22.22c{1} %-18.18M - %m%n" />
    </layout>
  </appender>

  <appender name="SmtpAppender" type="MySmtpClientSmtpAppender">
    <to value="a@a.com" />
    <from value="admin@x.com" />
    <subject value="Game Server Monitoring Failed!" />
    <smtpHost value="smtp.x.com" />
    <username value="admin" />
    <password value="x" />
    <bufferSize value="256" />
    <lossy value="true" />
    <evaluator type="log4net.spi.LevelEvaluator">
      <threshold value="ERROR" />
    </evaluator>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %d [ThreadId: %t] Class:%c{1} Method:%M %nMESSAGE:%n%m%n%n" />
    </layout>
  </appender>

  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="Logs\\wwwlog" />
    <appendToFile value="true" />
    <datePattern value="yyyyMMdd" />
    <maximumFileSize value="10MB" />
    <!--<rollingStyle value="Date" />-->
    <filter type="log4net.Filter.LevelRangeFilter">
      <acceptOnMatch value="true" />
      <levelMin value="INFO" />
      <levelMax value="FATAL" />
    </filter>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
    </layout>
  </appender>


  <root>
    <level value="DEBUG" />
    <appender-ref ref="ConsoleAppender" />
    <appender-ref ref="MySmtpAppender" />
    <appender-ref ref="RollingLogFileAppender" />
  </root>
</log4net>

وأنا في عداد المفقودين شيئا؟ أي نصائح / المشورة لتقليل حجم سجل مع الحفاظ على الوضوح، وأنماط تحويل أفضل؟ أي الخارقة للاهتمام؟

وتحرير: ملف XML لم يحصل في block.Updating التعليمات البرمجية. أي sugggestions؟

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

المحلول

واقتراح واحد للRollingLogFileAppender هو استخدام الحد الأدنى من lockingModel. مع هذا الإعداد ملف السجل غير مؤمن، وليس فتحه ومن ثم إغلاق لكل الكتابة.

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

نصائح أخرى

لا أحد ذكر الترميز. من المهم جدا إذا كنت تسجيل رسائل باللغة الصينية واليابانية والعربية أو أي لغة مزدوجة البايت. هنا مثال:

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
  <encoding value="utf-8" />
  <!-- etc. -->
</appender>

لتسجيل بألوان مختلفة عندما تظهر على وحدة تبعا لمستوى الرسالة (التصحيح، معلومات، خطأ أو قاتلة). وappender الثاني هو لحفظه على ملف:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <configSections>
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
   </configSections>

<log4net debug="false">
  <appender name="trace" type="log4net.Appender.TraceAppender, log4net">
    <layout type="log4net.Layout.PatternLayout,log4net">
      <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
    </layout>
  </appender>

 <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender,log4net">
   <mapping>
    <level value="ERROR" />
    <foreColor value="White" />
    <backColor value="Red" />
  </mapping>
  <mapping>
    <level value="DEBUG" />
    <foreColor value="White" />
  </mapping>
  <mapping>
    <level value="INFO" />
    <foreColor value="Green" />
  </mapping>

  <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
  </layout>
</appender>

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
  <param name="File" value="Logs/NSCurrent.log" />
  <param name="AppendToFile" value="true" />
  <param name="RollingStyle" value="Date" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <datePattern value="yyyy-MM-dd" />
  <layout type="log4net.Layout.PatternLayout,log4net">
    <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
  </layout>
</appender>

  <root>
    <priority value="DEBUG" />
    <appender-ref ref="RollingFile" />
    <appender-ref ref="ColoredConsoleAppender" />
  </root>
 </log4net>
 </configuration>

للحد من سجل حجم الملف، قد تتمكن من محاولة تعديل ConversionPattern:

وهنا شكل I الاستخدام:

  <layout type="log4net.Layout.PatternLayout,log4net">
    <!-- a reduced format, saves bit of log space: -->
    <param name="ConversionPattern" value="%date{MM/dd HH:mm:ss,fff}-{%level}-%message%newline"/>
  </layout>

وBEFORE:

و2012-06-05 10: 58: 40819 [1] INFO بلدي التطبيقات [(خالية)] - بلدي التطبيق - === نجوم تينغ ....

وبعد:

و06/05 11: 17: 29،151- {INFO} -My التطبيق - === البدء ...

ملاحظة: وثائق من طراز أباتشي ويبدو أن تكون غير صحيحة لlog4net - كما يقول لاستخدام نظام الضمان الاجتماعي لأجزاء من الثانية، في حين log4net يستخدم FFF

وتحقيق وفورات صغيرة في كل سطر يمكن أن تحدث فرقا كبيرا عموما:)

وأركض تكوين log4net الحد الأدنى جدا ويفضلون استخدام تنسيق XML، ولكن شيء واحد أود أن اقترح مضيفا (لتطبيقات الويب) هو appender ASP.NET أثر. عليك ببساطة أن أضيف ما يلي:

<appender name="AspNetTraceAppender" type="log4net.Appender.AspNetTraceAppender" >
   <layout type="log4net.Layout.PatternLayout" />
</appender>

وبعد ذلك إلى أسفل في مسجل الجذر، أو في أي مكان عليك أن تقرر لتنشيطه:

<root>
   <level value="WARN" />
   <appender-ref ref="XmlSchemaFileAppender" />
   <appender-ref ref="AspNetTraceAppender" />
</root>

وهذا يتيح لي للحصول على كل بياناتي التصحيح ذات الصلة معا على صفحة واحدة عندما أنا تصحيح بعض التفاصيل الدقيقة ASP.NET. معظم الوقت لدي التتبع ASP.NET علق appender إلى تعطيله، ولكن ساعدت حقا في عدد قليل من الحالات، وخصوصا عندما كنت في محاولة لمعرفة ما آخر خادم معين أسلوب ظهر يسبب اغلاق الخط في التطبيق .

وهذا قد يساعد قليلا، اعتمادا على كيفية log4j وlog4net مماثلة، وأنا أعتقد أنها تقوم على نفس المواصفات، ولكن أنا لا أعرف على وجه اليقين.

وحسنا لا استطيع ان اقول لكم ما لدي في بلدي التكوين log4net، ولكن استطيع ان اقول لكم ما لدي في بلدي التكوين log4j إذا كان هذا هو جيدة بما فيه الكفاية ...

<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!--
    <appender name="CHAINSAW_APPENDER"
            class="org.apache.log4j.net.SocketAppender">
        <param name="RemoteHost" value="localhost" />
        <param name="Port" value="4445" />
        <param name="LocationInfo" value="true"/>
        <param name="ReconnectionDelay" value="10000"/>
    </appender>
    -->

    <appender name="FILE_APPENDER"
        class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="c:/dev/logs/OSB.log" />
        <param name="Append" value="true" />
         <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p [[[[%c]]]] (((%F:%L))) ___%C___ - %m%n"/>
            </layout>
    </appender>

    <logger name="org.apache">
        <level value="WARN"/>
    </logger>

    <!--
    <logger name="com.conciliarpress.webapp.filter.GZIPFilte">
        <level value="WARN"/>
    </logger>

    <logger name="com.conciliarpress">
        <level value="DEBUG"/>
    </logger>

    <logger name="BibleFormControllerTest">
        <level value="DEBUG"/>
    </logger>

    <logger name="com.conciliarpress.webapp.action.sample.jmesa.JMesaSampleController">
        <level value="DEBUG"/>
    </logger>

    <logger name="com.conciliarpress.webapp.action.binding">
        <level value="DEBUG"/>
    </logger>

    <logger name="org.springframework.web.servlet.mvc">
        <level value="DEBUG"/>
    </logger>

    <logger name="org.directwebremoting">
        <level value="DEBUG"/>
    </logger>

    <logger name="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <level value="DEBUG"/>
    </logger>

    -->

    <logger name="com.conciliarpress.dao.hibernate">
        <level value="DEBUG"/>
    </logger>

    <logger name="com.conciliarpress.service.impl">
        <level value="DEBUG"/>
    </logger>

    <logger name="com.conciliarpress.service.dwr">
        <level value="DEBUG"/>
    </logger>

    <logger name="com.conciliarpress.webapp.action">
        <level value="DEBUG" />
    </logger>

    <root>
        <level value="WARN" />
        <appender-ref ref="FILE_APPENDER"/>
    </root>

</log4j:configuration>

وأيضا لدي المقابلة ملف التكوين بالمنشار:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
   <plugin name="logFileReceiver" class="org.apache.log4j.varia.LogFilePatternReceiver">
     <param name="fileURL" value="file:///c:/dev/logs/OSB.log" />
     <param name="timestampFormat" value="yyyy-MM-d HH:mm:ss,SSS"/> 
     <param name="logFormat" value="TIMESTAMP [THREAD] LEVEL [[[[LOGGER]]]] (((FILE:LINE))) ___CLASS___ - MESSAGE"/> 
     <param name="name" value="DLA_M_LogFile" />
     <param name="tailing" value="true" /> 
   </plugin>

   <root>
      <level value="debug"/>
   </root>
</log4j:configuration>

وهنا أيضا بعض المعلومات التي قد تساعدك decifer الملف الأخير: http://wiki.apache.org/logging-log4j/Configuring_a_log4j_RollingFileAppender_with_Chainsaw

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