利用log4net写入异常类日志,在网上搜索一阵之后便想记录下来,以便后期使用,同时希望帮到大家。
第一步:使用管理NuGet程序包导入log4net.dll
导入成功后会在引用下显示相应的log4net,存在这一步就证明导入成功。
第二步:在AssemblyInfo.cs文件中添加log4net.dll的参数。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
第三步:新增一个名为log4net.config配置文件,并将属性"复制到输出目录"修改为"如果较新则复制"
第四步:打开log4net在configuration节点下添加以下代码
<log4net> <!--错误日志类--> <logger name="logerror"><!--日志类的名字--> <level value="ALL" /><!--定义记录的日志级别--> <appender-ref ref="ErrorAppender" /><!--记录到哪个介质中去--> </logger> <!--信息日志类--> <logger name="loginfo"> <level value="ALL" /> <appender-ref ref="InfoAppender" /> </logger> <!--错误日志附加介质--> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"><!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质--> <param name="File" value="Log\\LogError\\" /><!--日志输出到exe程序这个相对目录下--> <param name="AppendToFile" value="true" /><!--输出的日志不会覆盖以前的信息--> <param name="MaxSizeRollBackups" value="100" /><!--备份文件的个数--> <param name="MaxFileSize" value="10240" /><!--当个日志文件的最大大小--> <param name="StaticLogFileName" value="false" /><!--是否使用静态文件名--> <param name="DatePattern" value="yyyyMMdd".htm"" /><!--日志文件名--> <param name="RollingStyle" value="Date" /><!--文件创建的方式,这里是以Date方式创建--> <!--错误日志布局--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" /> </layout> </appender> <!--信息日志附加介质--> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="Log\\LogInfo\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".htm"" /> <param name="RollingStyle" value="Date" /> <!--信息日志布局--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" /> </layout> </appender> </log4net>
第五步:添加一个帮助类LogHelper用于记录日志信息
public class LogHelper { public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); public static void WriteLog(string info) { if (loginfo.IsInfoEnabled) { loginfo.Info(info); } } public static void WriteLog(string info, Exception ex) { if (logerror.IsErrorEnabled) { logerror.Error(info, ex); } } }
第六步:写一段异常代码进行测试
private void Form1_Load(object sender, EventArgs e) { try { string a = "FF"; int b = Convert.ToInt32(a); } catch (Exception ex) { LogHelper.WriteLog(ex.Message.ToString(), ex); } }
最后在debug中找到Log文件夹可以查看错误信息
参考: https://www.cnblogs.com/vichin/p/6022612.html
链接: https://pan.baidu.com/s/1Dz0RP2uHMugJFonh662HiA
提取码: hyvy