Log4net使用探究
来源:互联网 发布:广汽丰田一汽丰田 知乎 编辑:程序博客网 时间:2024/04/28 23:47
第一步:
通过Nuget package 搜索Apache Log4net安装
第二步:
在项目Global.asax文件中添加读取 配置文件
第三步:
编写Loghelper 文件
1 public class LogNetHelper 2 { 3 private static ILog iLog { get; set; } 4 //默认Info等级 5 public static void Write(string message) 6 { 7 SetLogLevel(LogLevel.Info, null).Info(message); 8 } 9 //自定义10 public static ILog GetInstance(LogLevel level)11 {12 return SetLogLevel(level,null);13 }14 //是否需要重新加载配置文件使用15 private static ILog GetIlog(string configPath,string typeStr)16 {17 if (string.IsNullOrEmpty(configPath))18 {19 iLog = log4net.LogManager.GetLogger(typeStr);20 }21 else22 {23 iLog = log4net.LogManager.GetLogger(typeStr);24 log4net.Config.XmlConfigurator.Configure(new FileInfo(configPath));25 }26 return iLog;27 }28 //封装变化29 private static ILog SetLogLevel(LogLevel level, string configPath)30 {31 ILog log;32 switch (level)33 {34 case LogLevel.Fatal:35 log = GetIlog(configPath, LogLevel.Fatal.ToString());36 break;37 case LogLevel.Error:38 log = GetIlog(configPath, LogLevel.Error.ToString());39 break;40 case LogLevel.Warn:41 log = GetIlog(configPath, LogLevel.Warn.ToString());42 break;43 case LogLevel.Debug:44 log = GetIlog(configPath, LogLevel.Debug.ToString());45 break;46 case LogLevel.Info:47 log = GetIlog(configPath, LogLevel.Info.ToString());48 break;49 default:50 log = GetIlog(configPath, LogLevel.Info.ToString());51 break;52 }53 return log;54 }55 56 }57 //日志等级58 public enum LogLevel59 {60 Fatal,61 Error,62 Warn,63 Debug,64 Info65 }66 67 }
第四步:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <log4net debug="false"> 3 4 <!--按日期分割日志文件 一天一个--> 5 <appender name="LogFileAppenderByDate" type="log4net.Appender.RollingFileAppender" > 6 7 <!--是否续写--> 8 <param name="AppendToFile" value="true" /> 9 <!--最小锁定模型以允许多个进程可以写入同一个文件--> 10 <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 11 <param name="StaticLogFileName" value="true" /> 12 <!--保存路径--> 13 <param name="File" value="Logs\Error" /> 14 <param name="DatePattern" value="yyyy-MM-dd.LOG" /> 15 <param name="StaticLogFileName" value="false" /> 16 <param name="RollingStyle" value="Date" /> 17 <layout type="log4net.Layout.PatternLayout"> 18 <param name="ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 19 </layout> 20 </appender> 21 22 <!--按日志容量分割日志文件 10KB一个--> 23 <appender name="LogFileAppenderBySize" type="log4net.Appender.RollingFileAppender" > 24 <!--是否续写--> 25 <param name="AppendToFile" value="true" /> 26 <!--最小锁定模型以允许多个进程可以写入同一个文件--> 27 <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 28 29 <param name="StaticLogFileName" value="true" /> 30 31 <!--按照文件的大小进行变换日志文件--> 32 <param name="RollingStyle" value="Size" /> 33 <param name="File" value="log.txt" /> 34 <!--单个文件最大数量 好像只有在 按Size分割时有效--> 35 <param name="MaximumFileSize" value="200KB"/> 36 <!--保留的log文件数量 超过此数量后 自动删除之前的 好像只有在 按Size分割时有效--> 37 <param name="MaxSizeRollBackups" value="2" /> 38 39 <param name="StaticLogFileName" value="false" /> 40 <layout type="log4net.Layout.PatternLayout"> 41 <param name="ConversionPattern" value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 42 </layout> 43 </appender> 44 45 <!--按等级文件夹日志文件 一天一个--> 46 <appender name="Fatal" type="log4net.Appender.RollingFileAppender" > 47 48 <!--是否续写--> 49 <param name="AppendToFile" value="true" /> 50 <!--最小锁定模型以允许多个进程可以写入同一个文件--> 51 <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 52 <param name="StaticLogFileName" value="true" /> 53 <!--保存路径--> 54 <param name="File" value="Logs\Fatal" /> 55 <param name="DatePattern" value="yyyy-MM-dd.LOG" /> 56 <param name="StaticLogFileName" value="false" /> 57 <param name="RollingStyle" value="Date" /> 58 <layout type="log4net.Layout.PatternLayout"> 59 <param name="ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 60 </layout> 61 <filter type="log4net.Filter.LoggerMatchFilter"> 62 <loggerToMatch value="Fatal" /> 63 </filter> 64 <filter type="log4net.Filter.DenyAllFilter" /> 65 </appender> 66 67 <!--按等级文件夹日志文件 一天一个--> 68 <appender name="Error" type="log4net.Appender.RollingFileAppender" > 69 70 <!--是否续写--> 71 <param name="AppendToFile" value="true" /> 72 <!--最小锁定模型以允许多个进程可以写入同一个文件--> 73 <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 74 <param name="StaticLogFileName" value="true" /> 75 <!--保存路径--> 76 <param name="File" value="Logs\Error" /> 77 <param name="DatePattern" value="yyyy-MM-dd.LOG" /> 78 <param name="StaticLogFileName" value="false" /> 79 <param name="RollingStyle" value="Date" /> 80 <layout type="log4net.Layout.PatternLayout"> 81 <param name="ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 82 </layout> 83 <filter type="log4net.Filter.LoggerMatchFilter"> 84 <loggerToMatch value="Error" /> 85 </filter> 86 <filter type="log4net.Filter.DenyAllFilter" /> 87 </appender> 88 89 <!--按等级文件夹日志文件 一天一个--> 90 <appender name="Warn" type="log4net.Appender.RollingFileAppender" > 91 92 <!--是否续写--> 93 <param name="AppendToFile" value="true" /> 94 <!--最小锁定模型以允许多个进程可以写入同一个文件--> 95 <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 96 <param name="StaticLogFileName" value="true" /> 97 <!--保存路径--> 98 <param name="File" value="Logs\Warn" /> 99 <param name="DatePattern" value="yyyy-MM-dd.LOG" />100 <param name="StaticLogFileName" value="false" />101 <param name="RollingStyle" value="Date" />102 <layout type="log4net.Layout.PatternLayout">103 <param name="ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" />104 </layout>105 <filter type="log4net.Filter.LoggerMatchFilter">106 <loggerToMatch value="Warn" />107 </filter>108 <filter type="log4net.Filter.DenyAllFilter" />109 </appender>110 111 <!--按等级文件夹日志文件 一天一个-->112 <appender name="Debug" type="log4net.Appender.RollingFileAppender" >113 114 <!--是否续写-->115 <param name="AppendToFile" value="true" />116 <!--最小锁定模型以允许多个进程可以写入同一个文件-->117 <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" />118 <param name="StaticLogFileName" value="true" />119 <!--保存路径-->120 <param name="File" value="Logs\Debug" />121 <param name="DatePattern" value="yyyy-MM-dd.LOG" />122 <param name="StaticLogFileName" value="false" />123 <param name="RollingStyle" value="Date" />124 <layout type="log4net.Layout.PatternLayout">125 <param name="ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" />126 </layout>127 <filter type="log4net.Filter.LoggerMatchFilter">128 <loggerToMatch value="Debug" />129 </filter>130 <filter type="log4net.Filter.DenyAllFilter" />131 </appender>132 133 <!--按等级文件夹日志文件 一天一个-->134 <appender name="Info" type="log4net.Appender.RollingFileAppender" >135 136 <!--是否续写-->137 <param name="AppendToFile" value="true" />138 <!--最小锁定模型以允许多个进程可以写入同一个文件-->139 <param name="LockingModel" value="log4net.Appender.FileAppender.MinimalLock" />140 <param name="StaticLogFileName" value="true" />141 <!--保存路径-->142 <param name="File" value="Logs\Info" />143 <param name="DatePattern" value="yyyy-MM-dd.LOG" />144 <param name="StaticLogFileName" value="false" />145 <param name="RollingStyle" value="Date" />146 <layout type="log4net.Layout.PatternLayout">147 <param name="ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" />148 </layout>149 <filter type="log4net.Filter.LoggerMatchFilter">150 <loggerToMatch value="Info" />151 </filter>152 <filter type="log4net.Filter.DenyAllFilter" />153 </appender>154 155 156 157 158 159 160 161 <root>162 <level value="ALL" /> 163 <!--启用按等级文件夹分割-->164 <appender-ref ref="Fatal" />165 <appender-ref ref="Error" />166 <appender-ref ref="Warn" />167 <appender-ref ref="Debug" />168 <appender-ref ref="Info" />169 170 <!--启用按日期分割-->171 <!--<appender-ref ref="LogFileAppenderByDate" />-->172 173 <!--启用按容量分割-->174 <!--<appender-ref ref="LogFileAppenderBySize" />-->175 <!--启用保存到数据库-->176 <!--<appender-ref ref="AdoNetAppender" />-->177 </root>178 179 </log4net>
<root> 实际上就是一个根logger,所有其它logger都默认继承它,
- appender-ref 零个或多个 需要引用的appender
- level 记录级别
<appender> 定义日志的输出方式 name属性必须唯一,type属性必须指定
<layout> 日志布局,type属性必须指定
<filter> 过滤器,type属性必须指定
更多需要参考资料:
Apache Log4net 官方文档建议通读
csdn博友文章
阅读全文
0 0
- Log4net使用探究
- log4net使用
- Log4Net使用
- Log4Net使用
- log4net使用
- log4net使用
- log4Net使用
- log4net使用
- log4net使用
- log4net 使用
- log4Net使用
- log4net使用
- log4net 使用
- Log4Net使用
- log4net 使用
- Log4Net使用
- Log4net使用
- log4net 使用
- C#人脸识别入门篇(Step by step 人脸识别)
- 运用触发器定位不知源的weblogic
- android UiAutomator写一个给微信朋友圈所有动态点赞的用例
- NIO与I/O的区别
- java动态代理原理及解析
- Log4net使用探究
- Xlistview的依赖
- LeetCode刷题之路(一)——easy的开始
- 世界数据中心新闻摘要
- 纯CSS3向右循环闪过效果
- windows下Git使用系列(2)- Git与TortoiseGit基本操作
- 线段树模板(刘汝佳版本)
- Java 中lastIndexOf的用法
- python基础2