/// /// This class handles error and exception messages, and makes sure they are added to the Quality category /// using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Text; namespace GameAnalyticsSDK.Events { public static class GA_Debug { public static int MaxErrorCount = 10; private static int _errorCount = 0; private static bool _showLogOnGUI = false; public static List Messages; /// /// If SubmitErrors is enabled on the GA object this makes sure that any exceptions or errors are submitted to the GA server /// /// /// The message /// /// /// The exception stack trace /// /// /// The type of the log message (we only submit errors and exceptions to the GA server) /// public static void HandleLog(string logString, string stackTrace, LogType type) { //Only used for testing if (_showLogOnGUI) { if (Messages == null) { Messages = new List(); } Messages.Add(logString); } //We only submit exceptions and errors if (GameAnalytics.SettingsGA != null && GameAnalytics.SettingsGA.SubmitErrors && _errorCount < MaxErrorCount && type != LogType.Log) { if (string.IsNullOrEmpty (stackTrace)) { stackTrace = ""; } _errorCount++; string lString = logString.Replace('"', '\'').Replace('\n', ' ').Replace('\r', ' '); string sTrace = stackTrace.Replace('"', '\'').Replace('\n', ' ').Replace('\r', ' '); string _message = lString + " " + sTrace; if (_message.Length > 8192) { _message = _message.Substring (0, 8191); } SubmitError(_message, type); } } private static void SubmitError(string message, LogType type) { GAErrorSeverity severity = GAErrorSeverity.Info; switch (type) { case LogType.Assert: severity = GAErrorSeverity.Info; break; case LogType.Error: severity = GAErrorSeverity.Error; break; case LogType.Exception: severity = GAErrorSeverity.Critical; break; case LogType.Log: severity = GAErrorSeverity.Debug; break; case LogType.Warning: severity = GAErrorSeverity.Warning; break; } GA_Error.NewEvent(severity, message, null, false); } /// /// Used only for testing purposes /// public static void EnabledLog () { _showLogOnGUI = true; } } }