C# log4net使用
2020-07-14 05:36
465 查看
首先是配置文件:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="log\logfile.log"/> <appendToFile value="true"/> <rollingStyle value="Composite"/> <datePattern value="yyyyMMdd"/> <maxSizeRollBackups value="10"/> <maximumFileSize value="1MB"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <root> <level value="All"/> <appender-ref ref="RollingLogFileAppender"/> <appender-ref ref="ConsoleAppender"/> </root> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> </configuration>
然后是对应的类:
using System; using System.Collections.Generic; using System.Text; using System.Diagnostics.Tracing; using System.Diagnostics; using System.CodeDom.Compiler; using log4net; using System.Collections.Concurrent; //指定log4net使用的config文件来读取配置信息 //[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"Uti_Log4net_CF\Uti_Log4net_CF.config", Watch = true)] namespace Share_Utilities { class Uti_Log4net_C { private static readonly ConcurrentDictionary<Type, ILog> _loggers = new ConcurrentDictionary<Type, ILog>(); private static readonly ConcurrentDictionary<String, ILog> _str_loggers = new ConcurrentDictionary<String, ILog>(); /// <summary> /// 获取记录器 /// </summary> /// <param name="source"></param> /// <returns></returns> private static ILog GetLogger(String source) { if (_str_loggers.ContainsKey(source)) { return _str_loggers[source]; } else { ILog logger = LogManager.GetLogger(source); _str_loggers.TryAdd(source, logger); return logger; } } /* Log a message object */ /// <summary> /// 获取记录器 /// </summary> /// <param name="source"></param> /// <returns></returns> private static ILog GetLogger(Type source) { if (_loggers.ContainsKey(source)) { return _loggers[source]; } else { ILog logger = LogManager.GetLogger(source); _loggers.TryAdd(source, logger); return logger; } } /* Log a message object */ /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Debug(Type source, object message) { ILog logger = GetLogger(source); if (logger.IsDebugEnabled) logger.Debug(message); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Debug(object source, object message) { Debug(source.GetType(), message); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Debug(Type source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsDebugEnabled) logger.DebugFormat(format, args); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Debug(object source, string format, params object[] args) { Debug(source.GetType(), format, args); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Info(Type source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsInfoEnabled) logger.InfoFormat(format, args); } /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Info(object source, string format, params object[] args) { Info(source.GetType(), format, args); } /// <summary> /// 关键信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Info(Type source, object message) { ILog logger = GetLogger(source); if (logger.IsInfoEnabled) logger.Info(message); } /// <summary> /// 关键信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Info(object source, object message) { Info(source.GetType(), message); } /// <summary> /// 警告信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Warn(Type source, object message) { ILog logger = GetLogger(source); if (logger.IsWarnEnabled) logger.Warn(message); } /// <summary> /// 警告信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Warn(object source, object message) { Warn(source.GetType(), message); } /// <summary> /// 警告信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Warn(Type source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsWarnEnabled) logger.WarnFormat(format, args); } /// <summary> /// 警告信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Warn(object source, string format, params object[] args) { Warn(source.GetType(), format, args); } /// <summary> /// 错误信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Error(Type source, object message) { ILog logger = GetLogger(source); if (logger.IsErrorEnabled) logger.Error(message); } /// <summary> /// 错误信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Error(object source, object message) { Error(source.GetType(), message); } /// <summary> /// 错误信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Error(Type source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsErrorEnabled) logger.ErrorFormat(format, args); } /// <summary> /// 错误信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Error(object source, string format, params object[] args) { Error(source.GetType(), format, args); } /// <summary> /// 失败信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Fatal(Type source, object message) { ILog logger = GetLogger(source); if (logger.IsFatalEnabled) logger.Fatal(message); } /// <summary> /// 失败信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Fatal(object source, object message) { Fatal(source.GetType(), message); } /// <summary> /// 失败信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Fatal(Type source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsFatalEnabled) logger.FatalFormat(format, args); } /// <summary> /// 失败信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Fatal(object source, string format, params object[] args) { Fatal(source.GetType(), format, args); } /* Log a message object and exception */ /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Debug(object source, Exception exception, object message) { GetLogger(source.GetType()).Debug(message, exception); } /// <summary> /// 关键信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Info(object source, Exception exception, object message) { GetLogger(source.GetType()).Info(message, exception); } /// <summary> /// 警告信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Warn(object source, Exception exception, object message) { GetLogger(source.GetType()).Warn(message, exception); } /// <summary> /// 错误信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Error(object source, Exception exception, object message) { GetLogger(source.GetType()).Error(message, exception); } /// <summary> /// 错误信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Fatal(object source, Exception exception, object message) { GetLogger(source.GetType()).Fatal(message, exception); } /* Type String source */ /* Log a message object */ /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Debug(String source, object message) { ILog logger = GetLogger(source); if (logger.IsDebugEnabled) logger.Debug(message); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Debug(String source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsDebugEnabled) logger.DebugFormat(format, args); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Info(String source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsInfoEnabled) logger.InfoFormat(format, args); } /// <summary> /// 关键信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Info(String source, object message) { ILog logger = GetLogger(source); if (logger.IsInfoEnabled) logger.Info(message); } /// <summary> /// 警告信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Warn(String source, object message) { ILog logger = GetLogger(source); if (logger.IsWarnEnabled) logger.Warn(message); } /// <summary> /// 警告信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Warn(String source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsWarnEnabled) logger.WarnFormat(format, args); } /// <summary> /// 错误信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Error(String source, object message) { ILog logger = GetLogger(source); if (logger.IsErrorEnabled) logger.Error(message); } /// <summary> /// 错误信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="args"></param> public static void Error(String source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsErrorEnabled) logger.ErrorFormat(format, args); } /// <summary> /// 失败信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Fatal(String source, object message) { ILog logger = GetLogger(source); if (logger.IsFatalEnabled) logger.Fatal(message); } /// <summary> /// 失败信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> public static void Fatal(String source, string format, params object[] args) { ILog logger = GetLogger(source); if (logger.IsFatalEnabled) logger.FatalFormat(format, args); } /* Log a message object and exception */ /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Debug(String source, Exception exception, object message) { GetLogger(source).Debug(message, exception); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Info(String source, Exception exception, object message) { GetLogger(source).Debug(message, exception); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Error(String source, Exception exception, object message) { GetLogger(source).Debug(message, exception); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Warn(String source, Exception exception, object message) { GetLogger(source).Debug(message, exception); } /// <summary> /// 调试信息 /// </summary> /// <param name="source"></param> /// <param name="message"></param> /// <param name="exception"></param> public static void Fatal(String source, Exception exception, object message) { GetLogger(source).Debug(message, exception); } } }
转载于:https://my.oschina.net/xuyujie/blog/657050
相关文章推荐
- [C#] 我的log4net使用手册(完善中)
- C#关于log4net(Log For Net)的使用 简单说明以及介绍
- C#使用Log4Net记录日志(转的)
- C#2.0 webservice下使用log4net 写日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- [C#] 我的log4net使用手册(完善中)
- 一分钟学会 log4net(c#) 配置及使用
- log4net(c#) 配置及使用
- C#使用Log4Net记录日志
- C# 使用Log4Net记录日志(进阶篇)
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#中log4net使用方法
- C#中使用Log4Net记录日志
- 一分钟学会 log4net(c#) 配置及使用
- 在C#代码中应用Log4Net(二)典型的使用方式
- C#使用Log4Net记录日志
- 3_C# 实现VMS客户端——使用log4net 写日志