private static void TryLog(string message, Level messageLevel, Category category = Category.Unknown, params object[] args) { Level referenceLevel = LogLevel; if (LogOverrides.ContainsKey(category)) { referenceLevel = LogOverrides[category]; } if (referenceLevel < messageLevel) { return; } string categoryPrefix = category == Category.Unknown ? "" : "[" + category + "] "; string msg = categoryPrefix + message; if (args.Length > 0) { switch (messageLevel) { case Level.Off: break; case Level.Error: Debug.LogErrorFormat(msg, args); break; case Level.Warning: Debug.LogWarningFormat(msg, args); break; case Level.Info: Debug.LogFormat(msg, args); break; case Level.Trace: Debug.LogFormat(msg, args); break; } } else { switch (messageLevel) { case Level.Off: break; case Level.Error: Debug.LogError(msg); break; case Level.Warning: Debug.LogWarning(msg); break; case Level.Info: Debug.Log(msg); break; case Level.Trace: Debug.Log(msg); break; } } if (RconManager.Instance != null) { RconManager.AddLog(msg); } DebugConsole.AmendLog(msg); }