1 首先下载log4net并添加引用
我这边使用的 log4net-2.0.8-bin-oldkey 可以从如下链接下载
链接:https://pan.baidu.com/s/1gcCMvVP0zYl-iPwPFlqOKg
提取码:wqds
下载解压后可以在 log4net-2.0.8-bin-oldkey.ziplog4net-2.0.8in et 路径下看到.netframe 2.0/3.5/4.0/4.5 四个版本的dll文件。
当前项目的netframe版本可以从项目属性中找到。将相应版本的log4net.dll 添加到引用中。
2 配置Log4Net
(1)新建一个应用程序配置文件app.config: 右击项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“ app.config ”,单击“确定”。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <!--类库--> <log4net> <!--类:名字叫ErrorLog 证明这个类要用来记录错误信息--> <logger name="ErrorLog"> <!--设置这个类的等级是最低--> <level value="ALL"/> <!--设置这个引用--> <appender-ref ref="AppenderError"/> </logger> <!--类:名字叫InforLog 证明这个类要用来记录普通信息--> <logger name="InforLog"> <level value="ALL"/> <appender-ref ref="AppenderInfor"/> </logger> <!--提供记录错误信息的类中对错误信息的记录方式,记录方式是将信息日志写进一个文件中--> <appender name="AppenderError" type="log4net.Appender.RollingFileAppender"> <!--设置文件存储的位置--> <file value="log\Error\"/> <!--是否追加到文件--> <appendToFile value="true"/> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <rollingStyle value="Date"/> <!--按日期产生文件夹和文件名[在日期方式与混合方式下使用]--> <datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/> <!--是否只写到一个文件中--> <staticLogFileName value="false"/> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100"/> <!--记录日志信息的格式--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" /> </layout> </appender> <!--提供记录普通日志,记录方式是将信息日志写进一个文件中--> <appender name="AppenderInfor" type="log4net.Appender.RollingFileAppender"> <!--设置文件存储的位置--> <file value="log\Infor\"/> <!--是否追加到文件--> <appendToFile value="true"/> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <rollingStyle value="Date"/> <!--按日期产生文件夹和文件名[在日期方式与混合方式下使用]--> <datePattern value="yyyy\yyyyMM\yyyyMMdd'.txt'"/> <!--是否只写到一个文件中--> <staticLogFileName value="false"/> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100"/> <!--记录日志信息的格式--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" /> </layout> </appender> </log4net> </configuration>
(2)在AssemblyInfo.cs文件中添加log4net.dll的参数。(这步不做的话也可以通过编译正常运行,但是程序不会生成LOG文件!!!)
AssemblyInfo.cs文件位于项目Properites文件夹,打开后添加如下代码:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
3 添加一个帮助类LogHelper
public static class LogHelper { public static ILog logError = LogManager.GetLogger("ErrorLog"); public static ILog logInfor = LogManager.GetLogger("InforLog"); /// <summary> /// 记录错误日志 /// </summary> public static void WriteLog(string infor, Exception ex) { if (logError.IsErrorEnabled) { logError.Error(infor, ex); } } /// <summary> /// 记录普通日志 /// </summary> public static void WriteLog(string infor) { if (logInfor.IsInfoEnabled) { logInfor.Info(infor); } } }
4 功能测试
运行项目后,在项目的根目录下就会看到log文件夹,看到这个文件就说明log4net.dll的应用已经成功了。
文件夹的命名是根据你在app.config里面设置的file节点自动生成的,可以根据自己的需要自己设置存放的路径和格式等。
然后在程序的合适位置添加如下程序:
LogHelper.WriteLog("received code:" + code);//括号内的字符串即写入log的内容
实际生成的log效果如下:
以上,
特别感谢如下无私分享的博主!!!
参考资料:
1 C# 配置文件App.config的使用操作 https://blog.csdn.net/e295166319/article/details/77839798
2 C#使用log4net记录日志 https://blog.csdn.net/a_lllll/article/details/87390211
3 AssemblyInfo.cs文件详解 https://www.cnblogs.com/supersnowyao/p/8478162.html