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; } } }
public void Log(Logger.LogData logData) { lock (this.mLogLock) { this.mWaitingLogQueue.Enqueue(logData); Monitor.Pulse(this.mLogLock); } }
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); }
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); } } } } }