log4net的使用
1、首先在项目中添加Nuget程序包...
2、然后在NuGet窗体中搜索Log4Net,然后点击安装<安装过程可能会持续几分钟,请耐心等待>
3.在webconfig中添加配置
<appSettings> <!--log4net日志配置--> <!--log4net配置文件路径--> <add key="log4net" value="Configs\log4net.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".txt"" /> 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 <!--< > = <> %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".txt"" /> 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文件夹,在里面查看相应的日志记录。