예제 #1
0
    public static void SendLogToServer()
    {
        StoreGame.ClearLog();
        for (int i = 0; i < entriesConsole.Count; i++)
        {
            StoreGame.SaveLog(StoreGame.EType.DEBUG_LOG, entriesConsole[i].message);
        }
        string  url  = ServerWeb.URL_REQUEST_ERROR;
        string  data = ConvertStringToJson(StoreGame.LoadString(StoreGame.EType.DEBUG_LOG));
        WWWForm form = new WWWForm();

        form.AddField("app_id", GameManager.GAME.ToString());
        form.AddField("game_version", GameSettings.CurrentVersion);
        if (GameManager.CurrentScene != ESceneName.LoginScreen)
        {
            form.AddField("user_id", GameManager.Instance.mInfo.id);
            form.AddField("username", GameManager.Instance.mInfo.username);
        }
        form.AddField("scene", GameManager.CurrentScene.ToString());
        form.AddField("error", "");
        form.AddField("detail", "");
        form.AddField("environment", Common.GetDevice);
        form.AddField("debug_log", data);
        form.AddField(ServerWeb.PARAM_PARTNER_ID, GameSettings.Instance.ParnerCodeIdentifier);
        ServerWeb.StartThread(url, form, null);
    }
예제 #2
0
    /// <summary>
    /// Logged messages are sent through this callback function.
    /// </summary>
    /// <param name="message">The message itself.</param>
    /// <param name="stackTrace">A trace of where the message came from.</param>
    /// <param name="type">The type of message: error/exception, warning, or assert.</param>
    void HandleLog(string message, string stackTrace, LogType type)
    {
        ConsoleMessage entry = new ConsoleMessage(message, stackTrace, type);

        entries.Add(entry);
        if (entries.Count > LIMIT_LINE)
        {
            entries.RemoveAt(0);
        }

        if (GameManager.CurrentScene == ESceneName.GameplayChan && type == LogType.Exception)
        {
            WaitingView.Show("Có l?i x?y ra. Vui lòng d?i!");
            GameManager.Server.DoRequestGameCommand("refreshGame");
        }


        entriesConsole.Add(entry);
        if (entriesConsole.Count > LIMIT_LINE_CONSOLE)
        {
            entriesConsole.RemoveAt(0);
        }

        if (type == LogType.Error && !message.StartsWith("Coroutine couldn't be started because the the game object"))
        {
            StoreGame.ClearLog();
            for (int i = 0; i < entries.Count; i++)
            {
                StoreGame.SaveLog(StoreGame.EType.DEBUG_LOG, entries[i].message);
            }
            //SaveLogToFile(); //for test
            string  url  = ServerWeb.URL_REQUEST_ERROR;
            string  data = ConvertStringToJson(StoreGame.LoadString(StoreGame.EType.DEBUG_LOG));
            WWWForm form = new WWWForm();
            form.AddField("app_id", GameManager.GAME.ToString());
            form.AddField("game_version", GameSettings.CurrentVersion);
            if (GameManager.CurrentScene != ESceneName.LoginScreen)
            {
                form.AddField("user_id", GameManager.Instance.mInfo.id);
                form.AddField("username", GameManager.Instance.mInfo.username);
            }
            form.AddField("scene", GameManager.CurrentScene.ToString());
            form.AddField("error", "");
            form.AddField("detail", "");
            form.AddField("environment", Common.GetDevice);
            form.AddField("debug_log", data);
            form.AddField(ServerWeb.PARAM_PARTNER_ID, GameSettings.Instance.ParnerCodeIdentifier);
            if (!listSendError.Contains(form))
            {
                listSendError.Add(form);
                ServerWeb.StartThread(url, form, null);
            }
        }
    }
예제 #3
0
 public static void SaveLogToFile()
 {
     StoreGame.ClearLog();
     for (int i = 0; i < entriesConsole.Count; i++)
     {
         StoreGame.SaveLog(StoreGame.EType.DEBUG_LOG, entriesConsole[i].message);
     }
     if (StoreGame.Contains(StoreGame.EType.DEBUG_LOG))
     {
         SaveAndLoadFile.Save(StoreGame.LoadString(StoreGame.EType.DEBUG_LOG));
     }
 }