private static void LogReceiveHandler(string logString, string stackTrace, UnityEngine.LogType logType) { //Threads safety lock implementation lock (Loggers) { //Prevent nasty recursion problems if (!AlreadyLogging) { try { AlreadyLogging = true; var logInfo = new UCL_UnityLog(logString, stackTrace, logType); //Delete any dead loggers and pump them with the new log Loggers.RemoveAll(l => l == null); Loggers.ForEach(l => l.OnLogReceived(logInfo)); } finally { AlreadyLogging = false; } } } }
public void LogException(Exception exception, UnityEngine.Object context) { UCL_UnityLog log = new UCL_UnityLog(exception.Message, exception.StackTrace, LogType.Exception); LogMessage(log.TagName, log.FullLog); }
//-------------------------------------- // ILogMessageReceiver //-------------------------------------- public void OnLogReceived(UCL_UnityLog log) { LogMessage(log.TagName, log.Message); // LogMessage (log.LogType, log.LogString + "\n" + log.StackTrace); }
//-------------------------------------- // Overrided //-------------------------------------- public void LogFormat(LogType logType, UnityEngine.Object context, string format, params object[] args) { UCL_UnityLog log = new UCL_UnityLog(String.Format(format, args), "", logType); LogMessage(log.TagName, log.Message); }