using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IOT.Show.Common { /// /// 日志类 /// public class LogHelper { //GetLogger表示log4net配置文件中logger标签中name属性,此处要一致 不然无log输出 public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); /// /// 记录Info日志 /// /// /// public static void Info(string msg) { if (loginfo.IsInfoEnabled) { loginfo.Info(msg); } } /// /// 记录Error日志 /// /// /// public static void Error(string info, Exception ex = null) { if (!string.IsNullOrEmpty(info) && ex == null) { logerror.ErrorFormat("【附加信息】 : {0}
", new object[] { info }); } else if (!string.IsNullOrEmpty(info) && ex != null) { string errorMsg = BeautyErrorMsg(ex); logerror.ErrorFormat("【附加信息】 : {0}
{1}", new object[] { info, errorMsg }); } else if (string.IsNullOrEmpty(info) && ex != null) { string errorMsg = BeautyErrorMsg(ex); logerror.Error(errorMsg); } } /// /// 美化错误信息 /// /// 异常 /// 错误信息 private static string BeautyErrorMsg(Exception ex) { string errorMsg = string.Format("【异常类型】:{0}
【异常信息】:{1}
【堆栈调用】:{2}", new object[] { ex.GetType().Name, ex.Message, ex.StackTrace }); errorMsg = errorMsg.Replace("\r\n", "
"); errorMsg = errorMsg.Replace("位置", "位置"); return errorMsg; } } }