示例#1
0
        protected virtual void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            var e1 = e.ExceptionObject as Exception;

            CommonLogger.WriteLog(
                ELogCategory.Fatal,
                string.Format("ConsoleInit.OnUnhandledException: {0}", e1.Message),
                e: e1
                );
            if (e.IsTerminating)
            {
                Environment.Exit(1);
            }
        }
示例#2
0
        protected virtual void ProcessHttpRequest(HttpListenerContext ctx)
        {
            CommonLogger.WriteLog(
                ELogCategory.Info,
                string.Format("Recv http request, path: {0}, remote: {1}",
                              ctx.Request.Url.PathAndQuery,
                              ctx.Request.RemoteEndPoint.Address.ToString()
                              )
                );

            var session = CreateHttpRequestSession(ctx);

            ProcessRequest.Invoke();
        }
示例#3
0
        /// <summary>
        /// Write Line
        /// </summary>
        /// <param name="categeory">categeory</param>
        /// <param name="log">log</param>
        /// <param name="isWriteFile">is Write to File</param>
        /// <param name="showDate">showDate</param>
        /// <param name="showCategory">showCategory</param>
        /// <param name="e">Exception</param>
        public static void WriteLine(ELogCategory categeory, string log, bool isWriteFile = false,
                                     bool showDate = true, bool showCategory = false, Exception e = null)
        {
            string str = "";

            if (showDate)
            {
                str += string.Format("[{0}] ", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            }
            if (showCategory)
            {
                str += string.Format("[{0}] ", categeory);
            }
            str += log;

            ConsoleColor color = ConsoleColor.Gray;

            switch (categeory)
            {
            case ELogCategory.Debug:
                color = ConsoleColor.DarkGray;
                break;

            case ELogCategory.Warn:
                color = ConsoleColor.DarkYellow;
                break;

            case ELogCategory.Error:
                color = ConsoleColor.DarkRed;
                break;

            case ELogCategory.Fatal:
                color = ConsoleColor.Red;
                break;
            }

            Console.ForegroundColor = color;
            Console.WriteLine(str);
            Console.ResetColor();

            if (isWriteFile)
            {
                CommonLogger.WriteLog(categeory, log, e);
            }
        }
示例#4
0
        /// <summary>
        /// Process Detail Cmd
        /// </summary>
        /// <param name="cmd"></param>
        protected virtual void ProcessDetailCmd(string cmd)
        {
            if (!string.IsNullOrEmpty(cmd))
            {
                string[] arr = cmd.Split(' ');

                DetailCmdParam param = new Common.DetailCmdParam();
                param.Cmd    = "";
                param.Params = new Dictionary <string, string>();

                if (arr.Length > 0)
                {
                    param.Cmd = arr[0];

                    bool bException = false;
                    try
                    {
                        Regex           reg = new Regex("\\s+-([a-zA-Z0-9]{1,15})", RegexOptions.Multiline);
                        MatchCollection mc  = reg.Matches(cmd);
                        for (int i = 0; i < mc.Count; i++)
                        {
                            string key = mc[i].Value.Replace(" ", "").Replace("-", "");

                            int startIndex = mc[i].Index + mc[i].Length;
                            int length     = 0;
                            if (i + 1 < mc.Count)
                            {
                                length = mc[i + 1].Index - mc[i].Index - mc[i].Length;
                            }
                            else
                            {
                                length = cmd.Length - mc[i].Index - mc[i].Length;
                            }
                            string value = cmd.Substring(startIndex, length).Trim();

                            param.Params.Add(key, value);
                        }
                    }
                    catch (Exception e)
                    {
                        bException = true;

                        ConsoleHelper.WriteLine(
                            ELogCategory.Warn,
                            string.Format("Invalid cmd!")
                            );

                        CommonLogger.WriteLog(
                            ELogCategory.Warn,
                            string.Format("Invalid cmd: {0}", cmd),
                            e
                            );
                    }

                    if (!bException)
                    {
                        try
                        {
                            OnDetailCmd(param);
                        }
                        catch (Exception e)
                        {
                            ConsoleHelper.WriteLine(ELogCategory.Fatal, "OnDetailCmd Error");
                            CommonLogger.WriteLog(ELogCategory.Fatal, "OnDetailCmd Error", e);
                        }
                    }
                }
            }
        }