首页 > 代码库 > C#中使用Log4记录日志
C#中使用Log4记录日志
Log4Net配置还是挺简单的,具体:
1、新建Web或者Webform项目,使用Nuget下载log4net
2、新建Config文件夹,将log4net配置文件放入此文件夹中(当修改web.config的时候会重启网站,所以把log4net单独出来比较好,也好管理),log4net配置:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <log4net> 3 <appender name="fatalAppender" type="log4net.Appender.RollingFileAppender"> 4 <filter type="log4net.Filter.LevelMatchFilter"> 5 <levelToMatch value="FATAL" /> 6 </filter> 7 <filter type="log4net.Filter.DenyAllFilter" /> 8 <File value="Logs\fatal.log" /> 9 <appendToFile value="true" />10 <rollingStyle value="Date" />11 <datePattern value="yyyyMMdd" />12 <layout type="log4net.Layout.PatternLayout">13 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />14 </layout>15 </appender>16 <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">17 <filter type="log4net.Filter.LevelMatchFilter">18 <levelToMatch value="ERROR" />19 </filter>20 <filter type="log4net.Filter.DenyAllFilter" />21 <File value="Logs\err.log" />22 <appendToFile value="true" />23 <rollingStyle value="Date" />24 <datePattern value="yyyyMMdd" />25 <layout type="log4net.Layout.PatternLayout">26 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />27 </layout>28 </appender>29 <appender name="warnAppender" type="log4net.Appender.RollingFileAppender">30 <filter type="log4net.Filter.LevelMatchFilter">31 <levelToMatch value="WARN" />32 </filter>33 <filter type="log4net.Filter.DenyAllFilter" />34 <File value="Logs\warn.log" />35 <appendToFile value="true" />36 <rollingStyle value="Date" />37 <datePattern value="yyyyMMdd" />38 <layout type="log4net.Layout.PatternLayout">39 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />40 </layout>41 </appender>42 <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">43 <filter type="log4net.Filter.LevelMatchFilter">44 <levelToMatch value="INFO" />45 </filter>46 <filter type="log4net.Filter.DenyAllFilter" />47 <File value="Logs\info.log" />48 <appendToFile value="true" />49 <rollingStyle value="Date" />50 <datePattern value="yyyyMMdd" />51 <layout type="log4net.Layout.PatternLayout">52 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />53 </layout>54 </appender>55 <appender name="debugAppender" type="log4net.Appender.RollingFileAppender">56 <filter type="log4net.Filter.LevelMatchFilter">57 <levelToMatch value="DEBUG" />58 </filter>59 <filter type="log4net.Filter.DenyAllFilter" />60 <File value="Logs\debug.log" />61 <appendToFile value="true" />62 <rollingStyle value="Date" />63 <datePattern value="yyyyMMdd" />64 <layout type="log4net.Layout.PatternLayout">65 <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />66 </layout>67 </appender>68 <appender name="perfAppender" type="log4net.Appender.RollingFileAppender">69 <filter type="log4net.Filter.LevelMatchFilter">70 <levelToMatch value="INFO" />71 </filter>72 <filter type="log4net.Filter.DenyAllFilter" />73 <File value="Logs\perf.log" />74 <appendToFile value="true" />75 <rollingStyle value="Date" />76 <datePattern value="yyyyMMdd" />77 <layout type="log4net.Layout.PatternLayout">78 <conversionPattern value="%date %logger - %message%newline" />79 </layout>80 </appender>81 <root>82 <level value="ALL" />83 <appender-ref ref="fatalAppender" />84 <appender-ref ref="errorAppender" />85 <appender-ref ref="warnAppender" />86 <appender-ref ref="infoAppender" />87 <appender-ref ref="debugAppender" />88 </root>89 </log4net>
3、右键点击第2步骤的log4net文件属性,改成如图所示
在app.config或者web.config中的configuration节点下加入:
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections>
4、在Properties下的AssemblyInfo.cs文件中加入
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config/log4net.config", Watch = true)]
我写了一个log4帮助类方便使用,代码:
1 public static class Log4Helper 2 { 3 public static void Fatal(Type type, object message, Exception exception = null) 4 { 5 ILog log = LogManager.GetLogger(type); 6 if (exception == null) 7 log.Fatal(message); 8 else 9 log.Fatal(message, exception);10 }11 12 public static void Error(Type type, object message, Exception exception = null)13 {14 ILog log = LogManager.GetLogger(type);15 if (exception == null)16 log.Error(message);17 else18 log.Error(message, exception);19 }20 21 public static void Warn(Type type, object message, Exception exception = null)22 {23 ILog log = LogManager.GetLogger(type);24 if (exception == null)25 log.Warn(message);26 else27 log.Warn(message, exception);28 }29 30 public static void Info(Type type, object message, Exception exception = null)31 {32 ILog log = LogManager.GetLogger(type);33 if (exception == null)34 log.Info(message);35 else36 log.Info(message, exception);37 }38 39 public static void Debug(Type type, object message, Exception exception = null)40 {41 ILog log = LogManager.GetLogger(type);42 if (exception == null)43 log.Debug(message);44 else45 log.Debug(message, exception);46 }47 }
5、调用:
1 Log4Helper.Fatal(this.GetType(), "Fatal");2 Log4Helper.Error(this.GetType(), "Error", new Exception("error"));3 Log4Helper.Warn(this.GetType(), "Warn");4 Log4Helper.Info(this.GetType(), "Info");5 Log4Helper.Debug(this.GetType(), "Debug");
在根目录会有一个Log文件夹,里面:
C#中使用Log4记录日志
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。