Пример #1
0
        /// <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);
                }
            }
        }
Пример #2
0
 /// <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);
     }
 }
Пример #3
0
 /// <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);
         }
     }
 }
Пример #4
0
        /// <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;
        }
Пример #5
0
        /// <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);
            }
        }