原文參考:http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html
今天離離開公司還有一個多星期,為了自己做的那部分系統更加完善,用LOG4NET做了日誌功能。
1.添加引用
添加log4net(下載:http://logging.apache.org/log4net/download.html)引用,將DLL或者原始碼工程引用即可
2.修改或者增加app.config
項目預設有個增加一個app.config檔案,如果沒有需要增加.
當程式編譯後,會在你的執行目錄下產生一個<你的程式集名>.exe.config檔案內容和本檔案一樣
3.編輯app.config檔案
添加紅色部分如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--序列化對象參數-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0" />
</configSections>
<!--資料庫連接串-->
<connectionStrings>
<add name="ConnStr" connectionString="server=130.251.9.132;database=RoomManage;uid=sa;pwd=sa123;" providerName="System.Data.SqlClient" />
</connectionStrings>
<!--系統初始化需要的參數-->
<appSettings>
<add key="Conn" value=" 屬性測試" />
<add key="User" value="username ,id " />
</appSettings>
<!--LOG4NET配置參數檔案-->
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<!--記錄檔名-->
<file value="/log/roommanage.log"/>
<!--是否在檔案中追加-->
<appendToFile value="true"/>
<!--按照檔案的大小進行變換記錄檔-->
<rollingStyle value="Size"/>
<!--最大變換數量-->
<maxSizeRollBackups value="5"/>
<!--最大檔案大小-->
<maximumFileSize value="10MB"/>
<!--記錄檔名是否為靜態-->
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
</log4net>
</configuration>
這裡請注意<configuration> 和<configurations>標籤不能少
4.編輯Assembly.cs檔案
添加如下內容:
[assembly:log4net.Config.DOMConfigurator( ConfigFileExtension="config",Watch=true)]
5.在程式裡添加如下代碼
log4net.ILog log = log4net.LogManager.GetLogger("LoginLogger");
log.Debug("login succed!");
LoginLogger這裡的可以區分不同功能的日誌資訊,名稱可改!具體參數含義參考官方樣本。
PS:
這是最簡單的日誌了,我實現的是5個日誌(每個10M)檔案輪流進行讀寫,寫滿繼續迴圈下一個,都寫滿後再從第一個開始寫日誌,類似ORACLE中的非歸檔模式下的REDO記錄檔的寫入方式。