using System; using System.Diagnostics;[assembly: log4net.Config.XmlConfigurator(Watch = true)] namespace Hbl.Core {public static class Log{/// <summary>/// 一般错误/// </summary>/// <param name="message">消息</param>public static void Error(object message){log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());log.Error(message);}/// <summary>/// 一般错误/// </summary>/// <param name="message">消息</param>/// <param name="exception">异常</param>public static void Error(object message, Exception exception){log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());log.Error(message, exception);}/// <summary>/// 信息/// </summary>/// <param name="message">消息</param>public static void Info(object message){log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());log.Info(message);}/// <summary>/// 信息/// </summary>/// <param name="message">消息</param>/// <param name="exception">异常</param>public static void Info(object message, Exception ex){log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());log.Info(message, ex);}/// <summary>/// 警告/// </summary>/// <param name="message">消息</param>public static void Warn(object message){log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());log.Warn(message);}/// <summary>/// 警告/// </summary>/// <param name="message">消息</param>/// <param name="exception">异常</param>public static void Warn(object message, Exception ex){log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());log.Warn(message, ex);}/// <summary>/// 调试/// </summary>/// <param name="message">消息</param>public static void Debug(object message){log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());log.Debug(message);}/// <summary>/// 调试/// </summary>/// <param name="message">消息</param>/// <param name="exception">异常</param>public static void Debug(object message, Exception ex){log4net.ILog log = log4net.LogManager.GetLogger(GetCurrentMethodFullName());log.Debug(message, ex);}static string GetCurrentMethodFullName(){try{int depth = 2;StackTrace st = new StackTrace();int maxFrames = st.GetFrames().Length;StackFrame sf;string methodName, className;Type classType;do{sf = st.GetFrame(depth++);classType = sf.GetMethod().DeclaringType;className = classType.ToString();} while (className.EndsWith("Exception") && depth < maxFrames);methodName = sf.GetMethod().Name;return className + "." + methodName;}catch{return null;}}} }