Esempio n. 1
0
        public void run()
        {
            while (true)
            {
                string msgs = FileLogBlackBoard.ReadAndWipeBlackBoard();

                byte[] bytes = Encoding.UTF8.GetBytes(msgs);

                if (msgs == "")
                {
                    Thread.Sleep(sleepTime);

                    continue;
                }

                try
                {
                    fs = File.OpenWrite(this.path);

                    fs.Position = fs.Length;

                    fs.Write(bytes, 0, bytes.Length);

                    fs.Close();
                }
                catch (Exception e)
                {
                    Logger.LogError(e.Message + "\n" + e.StackTrace);
                }

                Thread.Sleep(sleepTime);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 普通样式 Log 打印一条信息
        /// </summary>
        /// <returns>The log.</returns>
        /// <param name="msg">Message.</param>
        public static void Log(string msg)
        {
            msg = DateTime.Now.ToString() + " " + msg + "\n";

            if (FileLog)
            {
                #region Initialize FileLogger

                if (!FileLoggerIsRunning)
                {
                    new Thread(new ThreadStart(fp.run)).Start();

                    FileLoggerIsRunning = true;
                }

                #endregion

                #region Write BlackBoard

                if (FileLogBlackBoard.BlackBoardIsLocked)
                {
                    logBuffer.Append(msg);
                }
                else
                {
                    if (logBuffer.Length != 0)
                    {
                        FileLogBlackBoard.WriteBlackBoard(logBuffer.ToString() + msg);

                        logBuffer.Clear();
                    }
                    else
                    {
                        FileLogBlackBoard.WriteBlackBoard(msg);
                    }
                }

                #endregion
            }

            if (DoLog)
            {
                switch (logType)
                {
                case LogType.Console:
                    Console.WriteLine(msg);
                    break;

                case LogType.Custom:
                    if (LogDelegate != null)
                    {
                        LogDelegate(msg);
                    }
                    break;

                default:
                    break;
                }
            }
        }