コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】エラー監視サービス「Rollbar」にメッセージを送信する方法

f:id:baba_s:20171123125258p:plain

はじめに

「Rollbar」はエラー監視サービスで、 Unity と連携することも可能です
この記事では Rollbar にメッセージを送信する方法を紹介していきます

ソースコード

メッセージを送信する方法

上記のソースコードを Unity プロジェクトに導入して
下記のようなプログラムを作成します

using Rollbar;
using System.Text;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void Awake()
    {
        Application.logMessageReceived += OnLogMessageReceived;
    }

    private void Update()
    {
        if ( Input.GetKeyDown( KeyCode.Z ) )
        {
            int.Parse( "a" );
        }
    }

    private void OnLogMessageReceived
    ( 
        string  condition  , 
        string  stackTrace , 
        LogType type 
    )
    {
        if ( type == LogType.Log || type == LogType.Warning ) return;

        var accessToken = "【ここにアクセストークン】";

        var body = new StringBuilder();
        body.AppendLine( condition );
        body.AppendLine( stackTrace );

        var payload = new Payload
        {
            access_token    = accessToken,
            data            = new Data
            {
                environment = "production",
                body        = new Body
                {
                    message = new Message
                    {
                        body = body.ToString(),
                    },
                },
            },
        };

        var routine = RollbarUtils.SendMessage
        (
            payload   : payload,
            onSuccess : () => Debug.Log( "成功" ),
            onError   : error => Debug.LogError( "失敗:" + error )
        );
        StartCoroutine( routine );
    }
}

このスクリプトをシーン内のゲームオブジェクトにアタッチして
ゲーム中に Z キーを押すと、Rollbar にエラーが送信されることが確認できます

f:id:baba_s:20171123124343p:plain

アクセストークンは Rollbar のプロジェクトの「Settings」から
「Project Access Tokens」を選択した中に表示されている
「post_client_item」を使用します

f:id:baba_s:20171123124920p:plain

参考サイト様