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類經常使用的爲:  
    一、DenyAllFilter  
       拒絕所用的日誌輸出  
       <filter type="log4net.Filter.LevelMatchFilter">  
           <param name="LevelToMatch" value="DEBUG" />        
       </filter>  
       <filter type="log4net.Filter.DenyAllFilter" />  
       上面的配置是若是日誌的輸出級別不符合DEBUG要求的話,則不輸出任何日誌。  
    二、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也會繼續執行。  
    三、LevelRangeFilter  
       配置文件是這樣的:  
        <filter type="log4net.Filter.LevelRangeFilter">  
            <param name="LevelMin" value="DEBUG" />  
            <param name="LevelMax" value="ERROR" />  
        </filter>  
    四、LoggerMatchFilter  
       配置文件是這樣的:  
        <filter type="log4net.Filter.LoggerMatchFilter">  
            <param name="LoggerToMatch" value="Client" />  
        </filter>  
    五、StringMatchFilter  
       配置文件是這樣的:  
        <filter type="log4net.Filter.StringMatchFilter">  
            <param name="StringToMatch" value="/blog/Client.Program" />  
        </filter>  

 三.等級說明

在具體寫日誌時,通常能夠這樣理解日誌等級:緩存

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

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

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

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

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

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

相關文章
相關標籤/搜索