[toc] 前言 不知不覺可都快又一年了,最近這段時間一直在忙著圖形方面的東西(確實快給我搞死了),雖說時間還是相對有的,但是精力耗費的十有十一,把問題記錄單開一欄,是為了後續記錄使用中遇到的問題及相應的解決方法。 Log4net 關於這個日誌記錄類庫,我也不需要多說,具體配置可見: "net co ...
目錄
前言
不知不覺可都快又一年了,最近這段時間一直在忙著圖形方面的東西(確實快給我搞死了),雖說時間還是相對有的,但是精力耗費的十有十一,把問題記錄單開一欄,是為了後續記錄使用中遇到的問題及相應的解決方法。
Log4net
關於這個日誌記錄類庫,我也不需要多說,具體配置可見:net core Webapi基礎工程搭建(四)——日誌功能log4net。
今天剛好一個網友問我,說業務上需要不同級別存儲到不同文件,確實在日誌記錄上,常規不會把所有級別的日誌文件放到同一個,這樣會把自己眼給看壞的,因為之前做過這塊兒的操作,所以這裡也就不多說,直接看代碼吧。
首先,我們需要在log4net.config中加上一個新的填充日誌的方法,這裡說下filter,很明顯,這是個過濾器,作用呢就是可以指定記錄日誌的級別,所以,也就不用多說了,一看便知。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- This section contains the log4net configuration settings -->
<log4net debug="false">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--很關鍵的一句,讓日誌文件不被占用-->
<file value="logs/" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd'.log'" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<!--這裡就是只記錄對應級別的配置-->
<appender name="RollingErrorLogAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<!--很關鍵的一句,讓日誌文件不被占用-->
<file value="logs/error/" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd'.log'" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
<!--這裡是新增一個配置-->
<appender-ref ref="RollingErrorLogAppender" />
</root>
</log4net>
</configuration>
然後我們來做個測試吧,問題記錄以後儘量精簡不廢話。
測試
在ValuesController的測試介面更改日誌測試為以下代碼。
#region ========日誌測試========
//日誌測試
LogUtil.Info("測試");
LogUtil.Error("錯誤測試");
#endregion
運行程式。
我們來看下效果,首先預設的日誌文件還是記錄了多個級別的日誌。
再來看下error下麵的日誌文件。
小結
ok,基本上到這裡就結束了,其實這篇東西不多,只是想藉此也開一個問題記錄欄,畢竟示例是一回事,實際業務使用又是一回事(當然,說起來這個WebApi工程好久沒動過了,唉,搞毛啊),後續還是會繼續鼓搗東西,一點點兒的通過這個示例工程來展示效果。