すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Unity3Dログの収集

最終更新日:Aug 23, 2024

このトピックでは、Simple Log Serviceのwebトラッキング機能を使用してUnity3Dログを収集する方法について説明します。

背景情報

Unity3Dは、Unity Technologiesによって開発されたクロスプラットフォームのゲームエンジンです。 このエンジンを使用すると、3Dビデオゲーム、VRビル、リアルタイム3Dアニメーションなどのインタラクティブコンテンツを作成できます。

Simple Log Serviceでは、webトラッキング機能を使用してUnity3Dログを収集できます。 webトラッキング機能の詳細については、「webトラッキング機能を使用したログの収集」をご参照ください。 このトピックでは、Unity3Dログを収集する方法を説明する例として、Unity Debug.Logを使用します。

手順

  1. webトラッキング機能を有効にします。 詳細については、「webトラッキング機能を使用したログの収集」をご参照ください。

  2. Unity3Dロギングハンドラを作成します。

    Unityエディターで、LogOutputHandler.csという名前のC# ファイルを作成し、ファイルに次のスクリプトを追加して、次の変数を変更します。

    • project: 管理するSimple Log Serviceプロジェクトの名前。 詳細については、「プロジェクトの管理」をご参照ください。

    • logstore: 管理するLogstoreの名前。 詳細については、「Logstoreの管理」をご参照ください。

    • serviceAddr: Simple Log Serviceプロジェクトのエンドポイント。 詳細については、「エンドポイント」をご参照ください。

    UnityEngineを使用して

    using UnityEngine;
    using System.Collections;
    public class LogOutputHandler : MonoBehaviour
    {
        //Register the HandleLog function on scene start to fire on debug.log events
        public void OnEnable()
        {
            Application.logMessageReceived += HandleLog;
        }
        //Remove callback when object goes out of scope
        public void OnDisable()
        {
            Application.logMessageReceived -= HandleLog;
        }
        string project = "your project name";
        string logstore = "your logstore name";
        string serviceAddr = "http address of your log service project";
        //Capture debug.log output, send logs to Loggly
        public void HandleLog(string logString, string stackTrace, LogType type)
        {
            string parameters = "";
            parameters += "Level=" + WWW.EscapeURL(type.ToString());
            parameters += "&";
            parameters += "Message=" + WWW.EscapeURL(logString);
            parameters += "&";
            parameters += "Stack_Trace=" + WWW.EscapeURL(stackTrace);
            parameters += "&";
            //Add any User, Game, or Device MetaData that would be useful to finding issues later
            parameters += "Device_Model=" + WWW.EscapeURL(SystemInfo.deviceModel);
            string url = "http://" + project + "." + serviceAddr + "/logstores/" + logstore + "/track?APIVersion=0.6.0&" + parameters;
            StartCoroutine(SendData(url));
        }
        public IEnumerator SendData(string url)
        {
            WWW sendLog = new WWW(url);
            yield return sendLog;
        }
    }

    上記のスクリプトを使用して、ログをSimple Log Serviceに非同期で送信できます。 スクリプトで他のフィールドを指定してフィールドを収集することもできます。

  3. Unity3Dログを生成します。

    LogglyTest.csという名前のファイルを作成し、次のスクリプトをファイルに追加します。

    UnityEngineを使用して

    using UnityEngine;
    using System.Collections;
    public class LogglyTest : MonoBehaviour {
        void Start () {
            Debug.Log ("Hello world");
        }
    }
  4. 収集したログを表示します。

    Unity3Dアプリケーションを実行すると、ログが生成され、Simple Log Serviceに送信されます。 Simple Log Serviceコンソールでログを表示できます。