首页 > 代码库 > log4net将日志进行分类,保存到不同的目录当中
log4net将日志进行分类,保存到不同的目录当中
1、新建Logs的Class类;代码如下:
1 public class ApiLogs 2 { 3 public static int Log_Level { get; set; } 4 private static bool initialized = false; 5 private static readonly ILog log = LogManager.GetLogger("ApiLogs"); 6 static ApiLogs() 7 { 8 if (!initialized) 9 { 10 Initialize(); 11 initialized = true; 12 } 13 } 14 private static void Initialize() 15 { 16 17 FileInfo fi = new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); 18 if (fi.Exists) 19 { 20 XmlConfigurator.ConfigureAndWatch(fi); 21 } 22 if (!LogManager.GetRepository().Configured) 23 { 24 string filePath = (Path.Combine(Path.GetDirectoryName(new Uri(Assembly.GetCallingAssembly().GetName().CodeBase).LocalPath), "Carpa.config")); 25 fi = new FileInfo(filePath); 26 if (fi.Exists) 27 { 28 XmlConfigurator.ConfigureAndWatch(fi); 29 } 30 else 31 { 32 Trace.TraceWarning("配置文件 {0} 不存在", fi.FullName); 33 } 34 } 35 } 36 37 38 /// <summary> 39 /// 调试输出 40 /// </summary> 41 /// <param name="message"></param> 42 public static void Debug(object message) 43 { 44 if (Log_Level >= 4) 45 { 46 log.Debug(message); 47 } 48 } 49 50 /// <summary> 51 /// 调试输出 52 /// </summary> 53 /// <param name="message"></param> 54 /// <param name="exception"></param> 55 public static void Debug(object message, Exception exception) 56 { 57 if (Log_Level >= 4) 58 { 59 log.Debug(message, exception); 60 } 61 } 62 63 /// <summary> 64 /// 格式化调试输出 65 /// </summary> 66 /// <param name="format"></param> 67 /// <param name="args"></param> 68 public static void DebugFormat(string format, params object[] args) 69 { 70 if (Log_Level >= 4) 71 { 72 log.DebugFormat(format, args); 73 } 74 } 75 76 /// <summary> 77 /// 信息输出 78 /// </summary> 79 /// <param name="message"></param> 80 public static void Info(object message) 81 { 82 if (Log_Level >= 2) 83 { 84 log.Info(message); 85 } 86 } 87 88 /// <summary> 89 /// 信息输出 90 /// </summary> 91 /// <param name="message"></param> 92 /// <param name="exception"></param> 93 public static void Info(object message, Exception exception) 94 { 95 if (Log_Level >= 2) 96 { 97 log.Info(message, exception); 98 } 99 }100 101 /// <summary>102 /// 格式化信息输出103 /// </summary>104 /// <param name="format"></param>105 /// <param name="args"></param>106 public static void InfoFormat(string format, params object[] args)107 {108 if (Log_Level >= 2)109 {110 log.InfoFormat(format, args);111 }112 }113 114 /// <summary>115 /// 警告输出116 /// </summary>117 /// <param name="message"></param>118 public static void Warn(object message)119 {120 if (Log_Level >= 3)121 {122 log.Warn(message);123 }124 }125 126 /// <summary>127 /// 警告输出128 /// </summary>129 /// <param name="message"></param>130 /// <param name="exception"></param>131 public static void Warn(object message, Exception exception)132 {133 if (Log_Level >= 3)134 {135 log.Warn(message, exception);136 }137 }138 139 /// <summary>140 /// 格式化警告输出141 /// </summary>142 /// <param name="format"></param>143 /// <param name="args"></param>144 public static void WarnFormat(string format, params object[] args)145 {146 if (Log_Level >= 3)147 {148 log.WarnFormat(format, args);149 }150 }151 152 /// <summary>153 /// 错误输出154 /// </summary>155 /// <param name="message"></param>156 public static void Error(object message)157 {158 if (Log_Level >= 1)159 {160 log.Error(message);161 }162 }163 164 /// <summary>165 /// 错误输出166 /// </summary>167 /// <param name="message"></param>168 /// <param name="exception"></param>169 public static void Error(object message, Exception exception)170 {171 if (Log_Level >= 1)172 {173 log.Error(message, exception);174 }175 }176 177 /// <summary>178 /// 格式化错误输出179 /// </summary>180 /// <param name="format"></param>181 /// <param name="args"></param>182 public static void ErrorFormat(string format, params object[] args)183 {184 if (Log_Level >= 1)185 {186 log.ErrorFormat(format, args);187 }188 }189 190 /// <summary>191 /// 致命输出192 /// </summary>193 /// <param name="message"></param>194 public static void Fatal(object message)195 {196 log.Fatal(message);197 }198 199 /// <summary>200 /// 致命输出201 /// </summary>202 /// <param name="message"></param>203 /// <param name="exception"></param>204 public static void Fatal(object message, Exception exception)205 {206 log.Fatal(message, exception);207 }208 209 /// <summary>210 /// 格式化致命输出211 /// </summary>212 /// <param name="format"></param>213 /// <param name="args"></param>214 public static void FatalFormat(string format, params object[] args)215 {216 log.FatalFormat(format, args);217 }218 219 220 221 222 /// <summary>223 /// 是否启用调试输出224 /// </summary>225 public static bool IsDebugEnabled226 {227 get { return log.IsDebugEnabled; }228 }229 230 /// <summary>231 /// 是否启用信息输出232 /// </summary>233 public static bool IsInfoEnabled234 {235 get { return log.IsInfoEnabled; }236 }237 238 /// <summary>239 /// 是否启用信息输出240 /// </summary>241 public static bool IsWarnEnabled242 {243 get { return log.IsWarnEnabled; }244 }245 246 /// <summary>247 /// 是否启用错误输出248 /// </summary>249 public static bool IsErrorEnabled250 {251 get { return log.IsErrorEnabled; }252 }253 254 /// <summary>255 /// 是否启用致命输出256 /// </summary>257 public static bool IsFatalEnabled258 {259 get { return log.IsFatalEnabled; }260 }261 }
2、定义Log4net.config配制文件
<?xml version="1.0" encoding="gb2312" ?><configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler" /> </configSections> <log4net> <appender name="DebugInfoAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value=http://www.mamicode.com/"data\CarpaLog_Info.txt" /> <appendToFile value=http://www.mamicode.com/"true" /> <maximumFileSize value=http://www.mamicode.com/"1024KB"/> <maxSizeRollBackups value=http://www.mamicode.com/"7"/> <CountDirection value=http://www.mamicode.com/"1"/> <RollingStyle value=http://www.mamicode.com/"Size"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value=http://www.mamicode.com/"%newline%date [%thread] %-5level - %message%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value=http://www.mamicode.com/"DEBUG" /> <levelMax value=http://www.mamicode.com/"INFO" /> </filter> </appender> <appender name="WarnErrorFatalAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value=http://www.mamicode.com/"data\CarpaLog_Error.txt" /> <appendToFile value=http://www.mamicode.com/"true" /> <RollingStyle value=http://www.mamicode.com/"Date" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value=http://www.mamicode.com/"%newline%date [%thread] %-5level - %message%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value=http://www.mamicode.com/"WARN" /> <levelMax value=http://www.mamicode.com/"FATAL" /> </filter> </appender> <appender name="DebugAppender" type="Carpa.Logging.Appender.DebugAppender"> <layout type="Carpa.Logging.Layout.PatternLayout"> <conversionPattern value=http://www.mamicode.com/"%date [%thread] %-5level %type - %message%newline" /> </layout> </appender> <appender name="ApiInfoAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value=http://www.mamicode.com/"data\ApiLog.txt" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <appendToFile value=http://www.mamicode.com/"true" /> <maximumFileSize value=http://www.mamicode.com/"5MB"/> <maxSizeRollBackups value=http://www.mamicode.com/"7"/> <CountDirection value=http://www.mamicode.com/"1"/> <RollingStyle value=http://www.mamicode.com/"Size"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value=http://www.mamicode.com/"%newline%date [%thread] %-5level - %message%newline" /> </layout> <!--<filter type="log4net.Filter.LoggerMatchFilter"> <loggerToMatch value=http://www.mamicode.com/"ApiLogs" /> </filter> <filter type="log4net.Filter.DenyAllFilter" />--> </appender> <logger name="ApiLogs"> <level value=http://www.mamicode.com/"ALL" /> <appender-ref ref="ApiInfoAppender" /> </logger> <logger name="test.Logging.Log"> <level value=http://www.mamicode.com/"INFO" /> <appender-ref ref="FileAppender" /> <appender-ref ref="DebugInfoAppender" /> <appender-ref ref="WarnErrorFatalAppender" /> </logger> </log4net></configuration>
核心说明:通过该类logManager.GetLogger("Name")的Name参数来区分,并定义配制文件中logger中name与Getlogger的Name名称一致
log4net将日志进行分类,保存到不同的目录当中
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。