/// <summary> /// 记录信息日志 /// </summary> /// <param name="layer">协议层</param> /// <param name="inf">数据</param> /// <param name="len">数据量</param> public static void RecordInf(enLogLayer layer, byte[] inf, int len = 0) { lock (lockLog) { if (layerLogSwitch[(int)layer]) { LogElement aLogElement = null; if (inf != null && inf.Length != 0) { if (len > inf.Length) { aLogElement = new LogElement(layer, enLogType.eInfo, ToHexString(inf)); } else { byte[] arrValid = new byte[len]; Array.Copy(inf, 0, arrValid, 0, len); aLogElement = new LogElement(layer, enLogType.eInfo, ToHexString(arrValid)); } } logQ.EnQ(aLogElement); } } }
/// <summary> /// 记录错误日志 /// </summary> /// <param name="layer">协议层</param> /// <param name="err">错误信息</param> public static void RecordErr(enLogLayer layer, string err) { lock (lockLog) { LogElement aLogElement = new LogElement(layer, enLogType.eErr, err); logQ.EnQ(aLogElement); } }
/// <summary> /// 记录信息日志 /// </summary> /// <param name="layer">协议层</param> /// <param name="inf">信息</param> public static void RecordInf(enLogLayer layer, string inf) { lock (lockLog) { if (layerLogSwitch[(int)layer]) { LogElement aLogElement = new LogElement(layer, enLogType.eInfo, inf); logQ.EnQ(aLogElement); } } }
/// <summary> /// 构造函数 /// </summary> /// <param name="layer">协议栈分层</param> /// <param name="type">日志类型</param> /// <param name="content">日志内容</param> /// <param name="newline">是否在新的一行中记录日志</param> public LogElement(enLogLayer layer, enLogType type, string content, bool newline = true) { LogTime = DateTime.Now.ToString("MM/dd HH:mm:ss:fff"); LogLayer = layer; LogType = type; if (content == null) { LogContent = string.Empty; } else { LogContent = content; } NewLine = newline; }
/// <summary> /// 记录错误日志 /// </summary> /// <param name="layer">协议层</param> /// <param name="err">错误数据</param> /// <param name="len">错误数据量</param> public static void RecordErr(enLogLayer layer, byte[] err, int len = 0) { lock (lockLog) { LogElement aLogElement = null; if (err != null && err.Length != 0) { if (len > err.Length) { aLogElement = new LogElement(layer, enLogType.eErr, ToHexString(err)); } else { byte[] arrValid = new byte[len]; Array.Copy(err, 0, arrValid, 0, len); aLogElement = new LogElement(layer, enLogType.eErr, ToHexString(arrValid)); } } logQ.EnQ(aLogElement); } }