Log4net使用探究
第一步:
通过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 else 22 { 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 LogLevel 59 { 60 Fatal, 61 Error, 62 Warn, 63 Debug, 64 Info 65 } 66 67 }
第四步:
1 <?xml version="1.0" encoding="UTF-8"?> 2"false"> 3 4 5 "LogFileAppenderByDate" type="log4net.Appender.RollingFileAppender" > 6 7 8 "AppendToFile" value="true" /> 9 10 "LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 11 "StaticLogFileName" value="true" /> 12 13 "File" value="Logs\Error" /> 14 "DatePattern" value="yyyy-MM-dd.LOG" /> 15 "StaticLogFileName" value="false" /> 16 "RollingStyle" value="Date" /> 17 21 22 23"log4net.Layout.PatternLayout"> 18 "ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 19 20"LogFileAppenderBySize" type="log4net.Appender.RollingFileAppender" > 24 25 "AppendToFile" value="true" /> 26 27 "LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 28 29 "StaticLogFileName" value="true" /> 30 31 32 "RollingStyle" value="Size" /> 33 "File" value="log.txt" /> 34 35 "MaximumFileSize" value="200KB"/> 36 37 "MaxSizeRollBackups" value="2" /> 38 39 "StaticLogFileName" value="false" /> 40 44 45 46"log4net.Layout.PatternLayout"> 41 "ConversionPattern" value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 42 43"Fatal" type="log4net.Appender.RollingFileAppender" > 47 48 49 "AppendToFile" value="true" /> 50 51 "LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 52 "StaticLogFileName" value="true" /> 53 54 "File" value="Logs\Fatal" /> 55 "DatePattern" value="yyyy-MM-dd.LOG" /> 56 "StaticLogFileName" value="false" /> 57 "RollingStyle" value="Date" /> 58 66 67 68"log4net.Layout.PatternLayout"> 59 "ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 60 61"log4net.Filter.LoggerMatchFilter"> 62 64"Fatal" /> 63 "log4net.Filter.DenyAllFilter" /> 65 "Error" type="log4net.Appender.RollingFileAppender" > 69 70 71 "AppendToFile" value="true" /> 72 73 "LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 74 "StaticLogFileName" value="true" /> 75 76 "File" value="Logs\Error" /> 77 "DatePattern" value="yyyy-MM-dd.LOG" /> 78 "StaticLogFileName" value="false" /> 79 "RollingStyle" value="Date" /> 80 88 89 90"log4net.Layout.PatternLayout"> 81 "ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 82 83"log4net.Filter.LoggerMatchFilter"> 84 86"Error" /> 85 "log4net.Filter.DenyAllFilter" /> 87 "Warn" type="log4net.Appender.RollingFileAppender" > 91 92 93 "AppendToFile" value="true" /> 94 95 "LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 96 "StaticLogFileName" value="true" /> 97 98 "File" value="Logs\Warn" /> 99 "DatePattern" value="yyyy-MM-dd.LOG" /> 100 "StaticLogFileName" value="false" /> 101 "RollingStyle" value="Date" /> 102 110 111 112"log4net.Layout.PatternLayout"> 103 "ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 104 105"log4net.Filter.LoggerMatchFilter"> 106 108"Warn" /> 107 "log4net.Filter.DenyAllFilter" /> 109 "Debug" type="log4net.Appender.RollingFileAppender" > 113 114 115 "AppendToFile" value="true" /> 116 117 "LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 118 "StaticLogFileName" value="true" /> 119 120 "File" value="Logs\Debug" /> 121 "DatePattern" value="yyyy-MM-dd.LOG" /> 122 "StaticLogFileName" value="false" /> 123 "RollingStyle" value="Date" /> 124 132 133 134"log4net.Layout.PatternLayout"> 125 "ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 126 127"log4net.Filter.LoggerMatchFilter"> 128 130"Debug" /> 129 "log4net.Filter.DenyAllFilter" /> 131 "Info" type="log4net.Appender.RollingFileAppender" > 135 136 137 "AppendToFile" value="true" /> 138 139 "LockingModel" value="log4net.Appender.FileAppender.MinimalLock" /> 140 "StaticLogFileName" value="true" /> 141 142 "File" value="Logs\Info" /> 143 "DatePattern" value="yyyy-MM-dd.LOG" /> 144 "StaticLogFileName" value="false" /> 145 "RollingStyle" value="Date" /> 146 154 155 156 157 158 159 160 161"log4net.Layout.PatternLayout"> 147 "ConversionPattern" value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> 148 149"log4net.Filter.LoggerMatchFilter"> 150 152"Info" /> 151 "log4net.Filter.DenyAllFilter" /> 153 162 178 179"ALL" /> 163 164 ref ref="Fatal" /> 165 ref ref="Error" /> 166 ref ref="Warn" /> 167 ref ref="Debug" /> 168 ref ref="Info" /> 169 170 171 172 173 174 175 176 177
- appender-ref 零个或多个 需要引用的appender
- level 记录级别
更多需要参考资料:
Apache Log4net 官方文档建议通读
csdn博友文章