log4net的使用

1、首先在项目中添加Nuget程序包...

2、然后在NuGet窗体中搜索Log4Net,然后点击安装<安装过程可能会持续几分钟,请耐心等待>

3.在webconfig中添加配置

  <appSettings>
    <!--log4net日志配置-->
    <!--log4net配置文件路径-->
    <add key="log4net" value="Configslog4net.config"/>
    <!--日志是否开启 0不开启 1开启-->
    <add key ="IsWriteLog" value="1"/>
  </appSettings>

给AssemblyInfo文件添加装载描述

1 //为项目注册Log4Net.config配置文件
2 [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]

程序启动时加载配置文件

 1  //初始化日志文件 
 2             string state = ConfigurationManager.AppSettings["IsWriteLog"];
 3             //判断是否开启日志记录
 4             if (state == "1")
 5             {
 6                 var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +
 7                            ConfigurationManager.AppSettings["log4net"];
 8                 var fi = new System.IO.FileInfo(path);
 9                 log4net.Config.XmlConfigurator.Configure(fi);
10             }

在当前项目下创建一个Configs文件夹,在此文件夹下创建一个log4net.config文件,文件内容如下

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <configuration>
 3   <configSections>
 4     <section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
 5   </configSections>
 6   <log4net>
 7     <logger name="logerror">
 8       <level value="ERROR" />
 9       <appender-ref ref="ErrorAppender" />
10     </logger>
11     <logger name="loginfo">
12       <level value="INFO" />
13       <appender-ref ref="InfoAppender" />
14     </logger>
15     <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
16       <!--设置日志存储路径-->
17       <param name="File" value="Log\LogError\" />
18       <!--是否追加到文件-->
19       <param name="AppendToFile" value="true" />
20       <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
21       <param name="MaxSizeRollBackups" value="100" />
22       <param name="MaxFileSize" value="10240" />
23       <!--是否只写到一个文件中-->
24       <param name="StaticLogFileName" value="false" />
25       <!--这是按日期产生文件夹,并在文件名前也加上日期-->
26       <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
27       <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
28       <param name="RollingStyle" value="Date" />
29       <layout type="log4net.Layout.PatternLayout">
30         <param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
31       </layout>
32       <!--&lt; &gt; = <> %n = 回车-->
33     </appender>
34     <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
35       <!--设置日志存储路径-->
36       <param name="File" value="Log\LogInfo\" />
37       <!--是否追加到文件-->
38       <param name="AppendToFile" value="true" />
39       <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
40       <param name="MaxSizeRollBackups" value="100" />
41       <param name="MaxFileSize" value="10240" />
42       <!--是否只写到一个文件中-->
43       <param name="StaticLogFileName" value="false" />
44       <!--这是按日期产生文件夹,并在文件名前也加上日期-->
45       <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
46        <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
47       <param name="RollingStyle" value="Date" />
48       <layout type="log4net.Layout.PatternLayout">
49         <param name="ConversionPattern" value="Datetime:%d Grade:%-5p  %m%n" />
50       </layout>
51     </appender>
52   </log4net>
53 </configuration>

创建一个写日志的公共类LogHelper

 1 using System;
 2 using System.Collections.Generic;
 3 using System.IO;
 4 using System.Linq;
 5 using System.Threading;
 6 using System.Web;
 7 
 8 namespace weTools.Common
 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("ThreadId:" + Thread.CurrentThread.ManagedThreadId.ToString() + "   Content:" + 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 LogHelper.WriteLog("这个是日志记录");

最终在项目的生成目录下会有一个Log文件夹,里面会有一个info 一个error文件夹,在里面查看相应的日志记录。

原文地址:https://www.cnblogs.com/dinggf/p/11785445.html