Пример #1
0
    void OnGUI()
    {
        // 重新定位日志输出位置
        this.logRect = new Rect(5, 10, Screen.width - 20, 20);
        // 输出当前缓存的日志数据
        for (int i = 0; i < this.logDataList.Count; ++i)
        {
            Logger.LogData logData = this.logDataList[i];
            switch (logData.Level)
            {
            case Logger.LogLevel.LOG:
                Print(LogColor, logData.Log);
                break;

            case Logger.LogLevel.WARNING:
                Print(WarningColor, logData.Log);
                break;

            case Logger.LogLevel.ASSERT:
                Print(AssertColor, logData.Log + logData.Track);
                break;

            case Logger.LogLevel.ERROR:
                Print(ErrorColor, logData.Log + logData.Track);
                break;

            default:
                break;
            }
        }
    }
Пример #2
0
 public void Log(Logger.LogData logData)
 {
     lock (this.mLogLock)
     {
         this.mWaitingLogQueue.Enqueue(logData);
         Monitor.Pulse(this.mLogLock);
     }
 }
Пример #3
0
    public void Log(Logger.LogData logData)
    {
        if (logData == null)
        {
            return;
        }
        if (logData.Level < Logger.Instance().uiOutputLogLevel)
        {
            return;
        }

        if (this.logDataList.Count > MaxLogCount)
        {
            this.logDataList.RemoveAt(0);
        }
        this.logDataList.Add(logData);
    }
Пример #4
0
 void WriteLog()
 {
     while (this.mIsRunning)
     {
         if (this.mWritingLogQueue.Count == 0)
         {
             lock (this.mLogLock)
             {
                 while (this.mWaitingLogQueue.Count == 0)
                 {
                     Monitor.Wait(this.mLogLock);
                 }
                 Queue <Logger.LogData> tmpQueue = this.mWritingLogQueue;
                 this.mWritingLogQueue = this.mWaitingLogQueue;
                 this.mWaitingLogQueue = tmpQueue;
             }
         }
         else
         {
             while (this.mWritingLogQueue.Count > 0)
             {
                 Logger.LogData log = this.mWritingLogQueue.Dequeue();
                 if (log.Level == Logger.LogLevel.ERROR)
                 {
                     this.mLogWriter.WriteLine("---------------------------------------------------------------------------------------------------------------------");
                     this.mLogWriter.WriteLine(log.Log);
                     this.mLogWriter.WriteLine(log.Track);
                     this.mLogWriter.WriteLine("---------------------------------------------------------------------------------------------------------------------");
                 }
                 else
                 {
                     this.mLogWriter.WriteLine(log.Log);
                 }
             }
         }
     }
 }