このトピックでは、Log Serviceのwebトラッキング機能を使用してUnity3Dログを収集する方法について説明します。
このタスクについて
Unity3Dは、Unity Technologiesによって開発されたクロスプラットフォームのゲームエンジンです。 このエンジンを使用すると、3Dビデオゲーム、VRビルディング、リアルタイム3Dアニメーション、その他のインタラクティブコンテンツを作成できます。
Log Serviceでは、webトラッキング機能を使用してUnity3Dログを収集できます。 webトラッキング機能の詳細については、「webトラッキング機能を使用してログを収集する」をご参照ください。 Unity Debug.Logは、Unity3Dログを収集する方法を説明する例として使用されます。
手順
- webトラッキング機能を有効にします。 詳細については、「webトラッキング機能を使用してログを収集する」をご参照ください。
- Unity3Dロギングハンドラを作成します。
Unityエディターで、LogOutputHandler.csという名前のC# ファイルを作成し、ファイルに次のコードを追加して、次の変数を変更します。
- project: Log Serviceプロジェクトの名前。
- logstore: Logstoreの名前。
- serviceAddr: Log Serviceプロジェクトのエンドポイント。 詳細については、「エンドポイント」をご参照ください。
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; } }
上記のスクリプトを使用して、ログをLog Serviceに非同期で送信できます。 スクリプトで他のフィールドを指定してフィールドを収集することもできます。
- Unity3Dログを生成します。
LogglyTest.csという名前のファイルを作成し、次のコードをファイルに追加します。
UnityEngineを使用する。System.Collectionsを使用する; パブリッククラスLogglyTest : MonoBehaviour { void Start () { Debug.Log ("Hello world"); } }
- 収集したログデータを表示します。
Unity3Dアプリケーションを実行すると、ログが生成され、Log Serviceに送信されます。 Log Serviceコンソールでログを表示できます。