Log日志文件格式說明


 1 <log4net>
 2   <root>
 3     <!--控制級別,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
 4     <!--如果定義級別為INFO,則INFO級別向下的級別,例如DEBUG日志將不會被記錄-->
 5     <!--如果沒有定義LEVEL的值,則缺省為DEBUG-->
 6     <level value="ALL" />
 7     <appender-ref ref="LogFileAppender"/>
 8     <level value="FATAL"/>
 9     <appender-ref ref="CutOffAppender" />
10   </root>
11   <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
12     <param name="File" value="Log\\main.log" />
13     <param name="AppendToFile" value="true" />
14     <layout type="log4net.Layout.PatternLayout">
15       <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p %u %c %l %m %n" />
16     </layout>
17   </appender>
18   <!--輸出到回滾文件,FileAppender為單一文件-->
19   <appender name="CutOffAppender" type="log4net.Appender.RollingFileAppender">
20     <!--日志文件名-->
21     <param name="File" value="Log\\CutOff\\" />
22     <!--是否在文件中追加-->
23     <param name="AppendToFile" value="true" />
24     <!--最大變換數量-->
25     <param name="maxSizeRollBackups" value="100" />
26     <!--日期格式-->
27     <DatePattern value="yyyy\\yyyyMM\\yyyyMMdd&quot;.log&quot;" />
28     <!--變換的形式為日期-->
29     <rollingStyle value="Date" />
30     <staticLogFileName value="false" />
31     <!--是否立即輸出到文件-->
32     <param name="ImmediateFlush" value="true" />
33     <layout type="log4net.Layout.PatternLayout">
34       <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p %u %c %l %m %n" />
35     </layout>
36     <!--根據級別過濾,但沒有生效,可能是我用的是Log4NetConfigurationSectionHandler-->
37     <filter type="log4net.Filter.LevelMatchFilter">
38       <param name="LevelToMatch" value="FATAL" />
39     </filter>
40   </appender>
41 </log4net>

一。Appender(引用自:https://blog.csdn.net/binnygoal/article/details/79557746)

已經實現的輸出方式有:

AdoNetAppender 將日志記錄到數據庫中。可以采用SQL和存儲過程兩種方式。

AnsiColorTerminalAppender 將日志高亮輸出到ANSI終端。

AspNetTraceAppender  能用asp.net中Trace的方式查看記錄的日志。

BufferingForwardingAppender 在輸出到子Appenders之前先緩存日志事件。

ConsoleAppender 將日志輸出到應用程序控制台。

EventLogAppender 將日志寫到Windows Event Log。

FileAppender 將日志輸出到文件。

ForwardingAppender 發送日志事件到子Appenders。

LocalSyslogAppender 將日志寫到local syslog service (僅用於UNIX環境下)。

MemoryAppender 將日志存到內存緩沖區。

NetSendAppender 將日志輸出到Windows Messenger service.這些日志信息將在用戶終端的對話框中顯示。

OutputDebugStringAppender 將日志輸出到Debuger,如果程序沒有Debuger,就輸出到系統Debuger。如果系統Debuger也不可用,將忽略消息。

RemoteSyslogAppender 通過UDP網絡協議將日志寫到Remote syslog service。

RemotingAppender 通過.NET Remoting將日志寫到遠程接收端。

RollingFileAppender 將日志以回滾文件的形式寫到文件中。

SmtpAppender 將日志寫到郵件中。

SmtpPickupDirAppender 將消息以文件的方式放入一個目錄中,像IIS SMTP agent這樣的SMTP代理就可以閱讀或發送它們。

TelnetAppender 客戶端通過Telnet來接受日志事件。

TraceAppender 將日志寫到.NET trace 系統。

UdpAppender 將日志以無連接UDP數據報的形式送到遠程宿主或用UdpClient的形式廣播。

二.過濾器

引用自:https://blog.csdn.net/xincai/article/details/7696916

log4net里面的filter類常用的為:  
    1、DenyAllFilter  
       拒絕所用的日志輸出  
       <filter type="log4net.Filter.LevelMatchFilter">  
           <param name="LevelToMatch" value="DEBUG" />        
       </filter>  
       <filter type="log4net.Filter.DenyAllFilter" />  
       上面的配置是如果日志的輸出級別不符合DEBUG要求的話,則不輸出任何日志。  
    2、LevelMatchFilter  
       這個類里面有兩個屬性,一個是LevelToMatch這個屬性是你要匹配輸出日志的級別,比如:  
        <filter type="log4net.Filter.LevelMatchFilter">  
           <param name="LevelToMatch" value="DEBUG" />        
        </filter>  
       這樣的話,只有級別是DEBUG的日志才能輸出。  
       另外這個類還有一個重要的屬性就是AcceptOnMatch這個屬性是設置如果這個條件匹配的話,是否接受輸出打印,比如說:  
        <filter type="log4net.Filter.LevelMatchFilter">  
           <param name="LevelToMatch" value="DEBUG" />        
        </filter>  
        <filter type="log4net.Filter.StringMatchFilter">  
           <param name="StringToMatch" value="debug" />        
        </filter>  
       如果日志的級別為DEBVG的話,也就是說符合了第一個Filter的條件,日志就輸出,則StringMatchFilter就不執行了。如果這樣寫的話,就會繼續向下執行過濾:  
        <filter type="log4net.Filter.LevelMatchFilter">  
           <param name="LevelToMatch" value="DEBUG" />    
           <AcceptOnMatch value="false"></AcceptOnMatch>     
        </filter>  
        <filter type="log4net.Filter.StringMatchFilter">  
           <param name="StringToMatch" value="debug" />        
        </filter>  
       如果這樣寫的話,即使第一個Filter符合了條件則第二個Filter也會繼續執行。  
    3、LevelRangeFilter  
       配置文件是這樣的:  
        <filter type="log4net.Filter.LevelRangeFilter">  
            <param name="LevelMin" value="DEBUG" />  
            <param name="LevelMax" value="ERROR" />  
        </filter>  
    4、LoggerMatchFilter  
       配置文件是這樣的:  
        <filter type="log4net.Filter.LoggerMatchFilter">  
            <param name="LoggerToMatch" value="Client" />  
        </filter>  
    5、StringMatchFilter  
       配置文件是這樣的:  
        <filter type="log4net.Filter.StringMatchFilter">  
            <param name="StringToMatch" value="/blog/Client.Program" />  
        </filter>  

 三.等級說明

在具體寫日志時,一般可以這樣理解日志等級:

FATAL(致命錯誤):記錄系統中出現的能使用系統完全失去功能,服務停止,系統崩潰等使系統無法繼續運行下去的錯誤。例如,數據庫無法連接,系統出現死循環。

ERROR(一般錯誤):記錄系統中出現的導致系統不穩定,部分功能出現混亂或部分功能失效一類的錯誤。例如,數據字段為空,數據操作不可完成,操作出現異常等。

WARN(警告):記錄系統中不影響系統繼續運行,但不符合系統運行正常條件,有可能引起系統錯誤的信息。例如,記錄內容為空,數據內容不正確等。

INFO(一般信息):記錄系統運行中應該讓用戶知道的基本信息。例如,服務開始運行,功能已經開戶等。

DEBUG (調試信息):記錄系統用於調試的一切信息,內容或者是一些關鍵數據內容的輸出。

非常完善的Log4net詳細說明:https://blog.csdn.net/binnygoal/article/details/79557746大神寫的賊全


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM