Exemplo n.º 1
0
        /// <summary>
        /// Register unity events that will generate logs in the breadcrumbs file
        /// </summary>
        /// <param name="level">Breadcrumbs level</param>
        public void Register(BacktraceBreadcrumbType level)
        {
            _registeredLevel = level;
            if (_registeredLevel.HasFlag(BacktraceBreadcrumbType.Navigation))
            {
                HasRegisteredEvents              = true;
                SceneManager.activeSceneChanged += HandleSceneChanged;
                SceneManager.sceneLoaded        += SceneManager_sceneLoaded;
                SceneManager.sceneUnloaded      += SceneManager_sceneUnloaded;
            }

            if (_registeredLevel.HasFlag(BacktraceBreadcrumbType.System))
            {
                HasRegisteredEvents    = true;
                Application.lowMemory += HandleLowMemory;
#if UNITY_2018_4_OR_NEWER
                Application.quitting     += HandleApplicationQuitting;
                Application.focusChanged += Application_focusChanged;
#endif
            }

            if (_registeredLevel.HasFlag(BacktraceBreadcrumbType.Log))
            {
                HasRegisteredEvents                     = true;
                Application.logMessageReceived         += HandleMessage;
                Application.logMessageReceivedThreaded += HandleBackgroundMessage;
            }
        }
        public bool EnableBreadcrumbs(BacktraceBreadcrumbType level, UnityEngineLogLevel unityLogLevel)
        {
            if (_enabled)
            {
                return(false);
            }
            BreadcrumbsLevel = level;
            UnityLogLevel    = unityLogLevel;

            var breadcrumbStorageEnabled = LogManager.Enable();

            if (!breadcrumbStorageEnabled)
            {
                return(false);
            }
            EventHandler.Register(level);
            return(true);
        }