1.下载Log4Net: http://logging.apache.org/log4net/download_log4net.cgi
2.新建一个WinForm程序,取名Log4NetDemo
3.选择对应的dll文件,并解压log4net.dll,比如我的目标框架是4.5.2,所以需要dll文件路径: log4net-1.2.15-bin-newkey.ziplog4net-1.2.15in et4.5 elease
4.添加log4net.dll引用,右键引用->添加引用
5.打开解决方案资源管理器下的app.config文件
修改其内容为
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <!--定义输出到文件中--> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置--> <file value="log\"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyy\yyyyMM\yyyyMMdd'.log'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <!--输出格式--> <!--样例:2016-04-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/> </layout> </appender> <root> <level value="ERROR"/> <!--文件形式记录日志--> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> </configuration>
6.新建一个LogHelper(可以用其他名字)类,内容如下:
using System; [assembly: log4net.Config.XmlConfigurator(Watch = true)] namespace Log4NetDemo { public class Log4NetHelper { /// <summary> /// 输出日志到Log4Net /// </summary> /// <param name="t"> /// </param> /// <param name="ex"> /// </param> public static void WriteLog(Type t, Exception ex) { log4net.ILog log = log4net.LogManager.GetLogger(t); log.Error("Error", ex); } /// <summary> /// 输出日志到Log4Net /// </summary> /// <param name="t"> /// </param> /// <param name="msg"> /// </param> public static void WriteLog(Type t, string msg) { log4net.ILog log = log4net.LogManager.GetLogger(t); log.Error(msg); } } }
7.在窗体上放置一个按钮,按钮的单击事件如下:
private void btnTest_Click(object sender, EventArgs e) { //第一种记录用法 //(1)Log4NetDemo是类名称 //(2)第二个参数是字符串信息 Log4NetHelper.WriteLog(typeof(Log4NetDemo), "测试Log4Net日志是否写入"); //第二种记录用法 //(1)Log4NetDemo是类名称 //(2)第二个参数是需要捕捉的异常块 //try { //}catch(Exception ex){ //LogHelper.WriteLog(typeof(Log4NetDemo), ex); //} }
8.运行程序并点击按钮,看到程序目录下生成log文件夹
打开最里面的txt文件,即可看到记录的日志:
注:文件夹的命名是根据你在app.config里面设置的file节点自动生成的,你可以根据自己的需要自己设置存放的路径和格式等。