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

Simple Log Service:Unity3D ログの収集

最終更新日:Mar 26, 2026

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

背景情報

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

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

操作手順

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

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

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

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

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

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

    using UnityEngine;
    using System.Collections;
    public class LogOutputHandler : MonoBehaviour
    {
        // シーン開始時に HandleLog 関数を登録し、debug.log イベントが発生したときに実行する
        public void OnEnable()
        {
            Application.logMessageReceived += HandleLog;
        }
        // オブジェクトがスコープ外になったときにコールバックを削除する
        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";
        // debug.log の出力をキャプチャし、ログを 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 += "&";
            // 後で問題の特定に役立つ可能性のあるユーザー、ゲーム、またはデバイスのメタデータを追加する
            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 という名前のファイルを作成し、次のスクリプトをファイルに追加します:

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

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