Ejemplo n.º 1
0
        public bool Write(LOG_MODE mode, string sMsg)
        {
            cekDir();
            string sDate = DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year;
            string sTime = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second;

            byte[] bMsg = Encoding.UTF8.GetBytes("[" + sTime + "] " + sMsg + Environment.NewLine);
            switch (mode)
            {
            case LOG_MODE.ACTION: {
                fStream = new FileStream(PATH + "\\Logs\\" + sDate + ".txt", FileMode.Append);
                fStream.Write(bMsg, 0, bMsg.Length);
                break;
            }

            case LOG_MODE.ERROR: {
                fStream = new FileStream(PATH + "\\Logs\\Errors\\" + sDate + ".txt", FileMode.Append);
                fStream.Write(bMsg, 0, bMsg.Length);
                break;
            }

            case LOG_MODE.WARNING: {
                fStream = new FileStream(PATH + "\\Logs\\Warnings\\" + sDate + ".txt", FileMode.Append);
                fStream.Write(bMsg, 0, bMsg.Length);
                break;
            }
            }
            fStream.Close();
            fStream.Dispose(); fStream = null;
            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Установить режим работы объекта
        /// </summary>
        /// <param name="log_mode">Значение для режима работы с низким приоритетом. Устанавливается при отсутствии режима в командной строке</param>
        /// <param name="LOG_KEY">Аргумент из состава командной строки - ключ для поиска режима журналирования</param>
        /// <returns>Результат установки режима работы</returns>
        public static void SetMode(LOG_MODE log_mode, string LOG_KEY = @"log=")
        {
            int iSetMode = 0;

            LOG_MODE cmd_log_mode = LOG_MODE.UNKNOWN;

            if (LOG_KEY.Equals(string.Empty) == false)
            {
                var arg_log = from arg in Environment.GetCommandLineArgs() where !(arg.IndexOf(LOG_KEY) < 0) select arg;

                if (arg_log.Count() == 1)
                {
                    if (Enum.IsDefined(typeof(Logging.LOG_MODE), arg_log.ElementAt(0).Substring(arg_log.ElementAt(0).IndexOf(LOG_KEY) + LOG_KEY.Length)) == true)
                    {
                        cmd_log_mode = (Logging.LOG_MODE)Enum.Parse(typeof(Logging.LOG_MODE), arg_log.ElementAt(0).Substring(arg_log.ElementAt(0).IndexOf(LOG_KEY) + LOG_KEY.Length));
                    }
                    else
                    {
                        iSetMode = -1; // режим не распознан
                    }
                }
                else
                if (arg_log.Count() == 0)
                {
                    iSetMode = 2;     // режим не указан - значение по умолчанию
                }
                else
                {
                    iSetMode = -2;     // режим указан несколко раз - значение по умолчанию
                }
            }
            else
            {
                iSetMode = 1; // режим не указан - ключ для поиска аргумента не найден
            }
            //Если назначить неизвестный(UNKNOWN) тип логирования - 1-е сообщения б. утеряны
            Logging.s_mode = cmd_log_mode;

            // попытка разобрать командную строку - найти указание на режим журналирования
            if (iSetMode < 0)
            {
                // ошибка разбора
                DelegateProgramAbort?.Invoke();
            }
            else if (iSetMode > 0)
            {
                // разбор выполнен - режим не установлен
                Logging.s_mode = log_mode;
            }
            else
            {
                // режим установлен из командной строки
                Logging.s_mode = cmd_log_mode;
            }
        }
Ejemplo n.º 3
0
 public static void ReLogg(LOG_MODE mode)
 {
     if (!(s_mode == mode))
     {
         m_this = null;
         s_mode = mode;
     }
     else
     {
         ;
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// log打印
        /// mode 表示文本输出类别
        /// 0 正常输出
        /// 1 错误
        /// 2 警告
        /// </summary>
        /// <param name="str">要输出的文本内容</param>
        /// <param name="mode">输出文本类别</param>
        /// <returns></returns>
        private void writeLog(string str, LOG_MODE mode)
        {
            //当有3000行数据时,删除前100行
            if (tb_log.LineCount > 3000)
            {
                _logWriteStream.Write(tb_log.Text);
                _logWriteStream.Flush();
                tb_log.Clear();
            }
            switch (mode)
            {
            case LOG_MODE.LOG_NORMAL:
            {
                tb_log.AppendText(string.Format(@"正常 {0:HH_mm_ss.fff}:", DateTime.Now) + str + "\r\n");
                break;
            }

            case LOG_MODE.LOG_ERROR:
            {
                tb_log.AppendText(string.Format(@"错误 {0:HH_mm_ss.fff}:", DateTime.Now) + str + "\r\n");
                break;
            }

            case LOG_MODE.LOG_WARNING:
            {
                tb_log.AppendText(string.Format(@"警告 {0:HH_mm_ss.fff}:", DateTime.Now) + str + "\r\n");
                break;
            }

            case LOG_MODE.LOG_TEST:
            {
                tb_log.AppendText(string.Format(@"测试 {0:HH_mm_ss.fff}:", DateTime.Now) + str + "\r\n");
                break;
            }

            default:
            {
                break;
            }
            }

            if (!tb_log.IsFocused)
            {
                tb_log.ScrollToEnd();
            }
            //logs.Add(str);
        }