NHN Cloud > SDK使用ガイド > Log & Crash > Android

事前準備

  1. NHN Cloud SDKをインストールします。
  2. NHN CloudコンソールLog & Crash Searchを有効化します。
  3. Log & Crash SearchでAppKeyを確認します。

ライブラリ設定

  • 下記コードをbuild.gradleに追加します。
repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.nhncloud.android:nhncloud-logger:1.9.4'
    ...
}

NHN Cloud Logger SDK初期化

  • 初期化は、Application#onCreateで行う必要があります。

初期化を行わずにNhnCloudLoggerを使用すると、初期化エラーが発生します。

  • Log & Crash Searchで発行されたAppKeyを設定します。
// Initialize Logger
NhnCloudLoggerConfiguration configuration = NhnCloudLoggerConfiguration.newBuilder()
        .setAppKey(YOUR_APP_KEY)            // Log & Crash Search AppKey
        .build();

NhnCloudLogger.initialize(configuration);

ログ送信

NHN Cloud Loggerは5つのレベルのログ送信関数を提供します。

ログ送信API仕様

// DEBUGレベルのログ
static void debug(String message);

// INFOレベルのログ
static void info(String message);

// WARNレベルのログ
static void warn(String message);

// ERRORレベルのログ
static void error(String message);

// FATALレベルのログ
static void fatal(String message);

ログ送信API使用例

NhnCloudLogger.warn("NHN Cloud Log & Crash Search!");

ユーザー定義フィールド設定

希望するユーザー定義フィールドを設定します。 ユーザー定義フィールドを設定すると、ログ送信APIを呼び出すたびに設定した値をログと一緒にサーバーに送信します。

setUserField API仕様

static void setUserField(String field, Object value);
  • ユーザー定義フィールドはLog & Crash Search > ログ検索をクリックした後ログ検索画面の 選択したフィールドに表示される値と同じです。

カスタムフィールドの制約事項

  • すでに予約されているフィールドは使用できません。
  • フィールド名には'A-Z、a-z、0-9、-、_'を使用できます。最初の文字は'A-Z、a-z'のみ使用できます。
  • フィールド名のスペースは、'_'に置換されます。

setUserField使用例

NhnCloudLogger.setUserField("nickname", "randy");

ログ送信後、追加作業進行

コールバック関数を登録すると、ログ送信後に追加作業を進行できます。

setLoggerListener API仕様

static void setLoggerListener(NhnCloudLoggerListener listener);

setLoggerListener使用例

NhnCloudLogger.setLoggerListener(new NhnCloudLoggerListener() {
    @Override
    public void onSuccess(LogEntry log) {
        // ログ送信成功
    }

    @Override
    public void onFilter(LogEntry log, LogFilter filter) {
        // ログフィルタリング
    }

    @Override
    public void onSave(LogEntry log) {
        // ネットワーク切断などでログの送信に失敗した場合、再送信のためにSDK内部保存
    }

    @Override
    public void onError(LogEntry log, Exception e) {
        // ログ送信失敗
    }
});

クラッシュログの収集

NHN Cloud Loggerは、アプリで予期せぬクラッシュが発生した場合に、クラッシュ情報をサーバーに記録します。

クラッシュログ収集を使用するかの設定

クラッシュログ送信機能は、setEnabledCrashReporter()メソッドを使用して有効化または無効化できます。

// Initialize Logger
NhnCloudLoggerConfiguration configuration = NhnCloudLoggerConfiguration.newBuilder()
        .setAppKey(YOUR_APP_KEY)            // Log & Crash Search AppKey
        .setEnabledCrashReporter(true)              // Enable or Disable Crash Reporter
        .build();

NhnCloudLogger.initialize(configuration);

UserIDが設定されている場合、Log&Crash SearchコンソールのCrash Userセクションでユーザー固有のクラッシュ体験を確認できます。 UserIDの設定は[開始する](./getting-started-android/#userid)で確認できます。

Handled Exception API使用

Androidプラットフォームでは、try/catch構文で例外に関する内容を、NHN Cloud LoggerのHandled Exception APIを使用して送信できます。 このように送信した例外ログは、コンソールでLog & Crash Search > アプリクラッシュ検索をクリックし、エラータイプHandledをクリックして照会できます。 Log & Crashコンソールの詳細な使用方法は、コンソール使用ガイドを参照してください。

Handled Exception Log API仕様

// 例外情報送信
static void report(@NonNull String message, @NonNull Throwable throwable);

// ユーザーフィールドと一緒に例外情報送信
static void report(@NonNull String message,
                   @NonNull Throwable throwable,
                   @Nullable Map<String, Object> userFields);

使用例

try {
    // User Codes...
} catch (Exception e) {
    Map<String, Object> userFields = new HashMap<>();
    NhnCloudLogger.report("message", e, userFields);
}

クラッシュ発生時に追加情報を設定して送信

クラッシュ発生直後、追加情報を設定できます。 setUserFieldは、クラッシュ時点に関わらず、いつでも設定でき、 setCrashDataAdapterの場合は、正確にクラッシュが発生した時点に追加情報を設定できます。

setCrashDataAdapter API仕様

static void setCrashDataAdapter(CrashDataAdapter adapter);
  • CrashDataAdapterのgetUserFields関数を通してリターンするMap資料構造のキー値は、上で説明したsetUserFieldの'field値'と同じ制約条件を持ちます。

setCrashDataAdapter使用例

NhnCloudLogger.setCrashDataAdapter(new CrashDataAdapter() {
    @Override
    public Map<String, Object> getUserFields() {
        Map<String, Object> userFields = new HashMap<>();
        userFields.put("UserField", "UserValue");
        return userFields;
    }
});

Network Insights

Network Insightsは、コンソールに登録したURLを呼び出して遅延時間とレスポンス値を測定します。これを活用して複数の国(デバイスの国コード基準)での遅延時間とレスポンス値を測定できます。

コンソールからNetwork Insights機能を有効にすると、TOAST Loggerを初期化する時、コンソールに登録したURLで1回要請します。

Network Insights有効化

Network Insightsを有効にする方法は次のとおりです。

  1. NHN Cloud ConsoleLog & Crash Searchサービスをクリックします。
  2. 設定メニューをクリックします。
  3. ログ送信設定タブをクリックします。
  4. Network Insightsログを有効にします。

URL設定

URLを設定する方法は次のとおりです。

  1. NHN Cloud ConsoleLog & Crash Searchサービスをクリックします。
  2. ネットワークインサイトメニューをクリックします。
  3. URL設定タブをクリックします。
  4. 測定するには、URLを入力して追加ボタンをクリックします。
TOP