简介:
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