简介:
Log4Net是用来记录日志,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题。
日志的作用:将运行过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。
演示:
第一步:官网下载类库
地址:http://logging.apache.org/log4net/download_log4net.cgi
也可以到我百度云盘下载:
链接:https://pan.baidu.com/s/1OOjRwz6K2_ImeTGCz9p-nQ
提取码:37re
第二步:程序引入第三方类库
第三步:配置app.config
1 <?xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 <log4net> 4 <logger name="logerror"> 5 <level value="ERROR" /> 6 <appender-ref ref="ErrorAppender" /> 7 </logger> 8 <logger name="loginfo"> 9 <level value="INFO" /> 10 <appender-ref ref="InfoAppender" /> 11 </logger> 12 <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> 13 <param name="File" value="Log\LogError\" /> 14 <param name="AppendToFile" value="true" /> 15 <param name="MaxSizeRollBackups" value="100" /> 16 <param name="MaxFileSize" value="10240" /> 17 <param name="StaticLogFileName" value="false" /> 18 <param name="DatePattern" value="yyyyMMdd".txt"" /> 19 <param name="RollingStyle" value="Date" /> 20 <layout type="log4net.Layout.PatternLayout"> 21 <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" /> 22 </layout> 23 <!--< > = <> %n = 回车--> 24 </appender> 25 <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> 26 <param name="File" value="Log\LogInfo\" /> 27 <param name="AppendToFile" value="true" /> 28 <param name="MaxFileSize" value="10240" /> 29 <param name="MaxSizeRollBackups" value="100" /> 30 <param name="StaticLogFileName" value="false" /> 31 <param name="DatePattern" value="yyyyMMdd".txt"" /> 32 <param name="RollingStyle" value="Date" /> 33 <layout type="log4net.Layout.PatternLayout"> 34 <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" /> 35 </layout> 36 </appender> 37 </log4net> 38 </configuration>
第四步:在AssemblyInfo.cs 注册config
1 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
第五步:日志文件帮助类
1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace Log4NetDemo 9 { 10 public class LogHelper 11 { 12 private LogHelper() 13 { 14 15 } 16 17 public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); 18 19 public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); 20 21 public static void SetConfig() 22 { 23 log4net.Config.XmlConfigurator.Configure(); 24 } 25 26 public static void SetConfig(FileInfo configFile) 27 { 28 log4net.Config.XmlConfigurator.Configure(configFile); 29 } 30 31 public static void WriteLog(string info) 32 { 33 if (loginfo.IsInfoEnabled) 34 { 35 loginfo.Info(info); 36 } 37 } 38 39 public static void WriteLog(string info, Exception se) 40 { 41 if (logerror.IsErrorEnabled) 42 { 43 logerror.Error(info, se); 44 } 45 } 46 } 47 }
第六步:执行
1 using System; 2 using System.Windows.Forms; 3 4 namespace Log4NetDemo 5 { 6 public partial class Form1 : Form 7 { 8 public Form1() 9 { 10 InitializeComponent(); 11 } 12 13 private void button1_Click(object sender, EventArgs e) 14 { 15 try 16 { 17 LogHelper.WriteLog("正常日志记录!"); 18 int a = Convert.ToInt32("b"); 19 } 20 catch (Exception ex) 21 { 22 LogHelper.WriteLog("错误日志记录!", ex); 23 MessageBox.Show("ok"); 24 } 25 } 26 } 27 }
效果
项目:
链接:https://pan.baidu.com/s/1WFJbbDudHuXYWYydIjowAA
提取码:4pzq