首先,去官網下載log4net工具 鏈接http://logging.apache.org/log4net/download_log4net.cgi
目前最新的版本 log4net-1.2.15-bin-newkey.zip
下載之后,目錄log4net-1.2.15-bin-newkey\log4net-1.2.15\bin\net\4.0\release 里面的log4net.dll就是我們要引用的dll了。
新建一個winform程序,添加引用
然后在程序配置文件App.conifg中加入配置,這里要申明的一點是,不是一定要把log4net的配置放在這個文件里,重新創建一個xml文件也是可以的,一會兒將在下面說到。
我配置得比較簡單,需要進行復雜配置的朋友可以去參照他給的示例xml,里面有注釋。配置文件App.config如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<log4net>
<logger name="ErrorLog">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\\ErrorLog\\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<staticLogFileName value="false" />
<datePattern value="_yyyyMMdd".txt""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-d{yyyy-MM-dd HH\:mm\:ss} - %p%n%m%n%n"/>
</layout>
</appender>
</log4net>
</configuration>
值得注意的是,一個log需要有一個對應的appender。appender中可以配置日志的格式啊,追加日志的方式啊等等。
然后有一點需要特別注意的就是。一定要在Properties中的AssemblyInfo.cs中添加一行:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
這里回答一下上面的問題。在這一行配置中,是可以配置log4net的配置文件位置的,如果像上面一樣,就是程序默認的配置文件App.config中讀取配置信息,如果你想寫在其他地方,單獨寫一個xml,比如要寫在最終生成的exe同級目錄下的log4net.xml中,那么這一行就該這么寫
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]
注意watch=true是必須的,否則程序就不會對這個進行監聽,換個意思,這里可以做開關日志記錄的操作。
然后配置完成。看效果。
我們添加一個按鈕,直接來看效果:
然后在這個按鈕的點擊事件中:
private void button1_Click(object sender, EventArgs e)
{
log4net.ILog log = log4net.LogManager.GetLogger("ErrorLog");
log.Error("日志測試");
}
這里略加提醒,這個ErrorLog是在配置文件中配置的logger的name屬性,不可以胡亂寫,不然程序會找不到那個logger。另外,可以在配置文件中配置各種logger,很多logger,比如業務方面的,數據庫方面的,錯誤信息,換一個logger名字和對應的Appender的名字就可以了。
然后點擊按鈕。按照代碼,應該寫一個錯誤日志,日志內容是“日志測試”,我們去看看結果。
從上圖可以看到,在debug目錄新建了一個文件夾log,點擊進去
這里這個文件夾就是在配置文件中配置的logger名稱了,你配置了多個logger,這里就會有多個對應的文件夾,
這個日志文件的名字格式也是在對應的appender 中可以配置的,打開txt文件:
成功!!!同理,這里所有的格式,都是可以配置的。趕快去使用吧。
總結一下需要注意的點:
1、配置文件一個logger要有一個對應的appender,這個appender可以決定日志的名字,格式,寫入方式等等。
2、配置好以后一定不要放了去Properties中的AssemblyInfo.cs中添加一行:[assembly: log4net.Config.XmlConfigurator(Watch = true)],如果你的配置不是寫在程序默認配置文件中的,這里要設置好文件的路徑,具體例子看上面正文。要關掉日志,Wacth=false即可。不用去程序中注釋原來所有的日志代碼。