Android 用の MSAL でのログ記録

Microsoft Authentication Library (MSAL) アプリは、問題の診断に役立つログ メッセージを生成します。 アプリは数行のコードでログ記録を構成でき、詳細レベルと、個人データと組織のデータをログ記録するかどうかを制御するカスタム コントロールを備えています。 ユーザーが認証の問題を抱えているときは、MSAL ログの実装を作成し、ユーザーがログを送信できるようにすることをお勧めします。

ログ記録のレベル

MSAL では、いくつかのレベルのログ記録の詳細が提供されます。

  • LogAlways: このログ レベルでは、レベルのフィルター処理は行われません。 すべてのレベルのログ メッセージがログされます。
  • Critical: アプリケーションまたはシステムの修復不可能なクラッシュや、早急に対処する必要がある重大な障害について説明するログ。
  • エラー:問題の発生し、エラーが生成されたことを示します。 問題をデバッグおよび特定するために使用されます。
  • 警告:必ずしもエラーや障害があったわけではありませんが、診断や問題の特定の対象となっています。
  • Informational: MSAL は、情報目的でイベントをログし、必ずしもデバッグ目的ではありません。
  • Verbose (既定値): MSAL は、ライブラリの動作の完全な詳細をログします。

注意

すべての MSAL SDK ですべてのログ レベルを使用できるわけではありません

個人と組織のデータ

既定では、MSAL ロガーによって、機密性の高い個人または組織のデータはキャプチャされません。 ライブラリには、個人と組織のデータをログ記録することにした場合に、そのログ記録を有効にするオプションが用意されています。

次のセクションでは、アプリケーションの MSAL エラー ログ記録の詳細について説明します。

Java を使用した MSAL for Android でのログ記録

ログ記録コールバックを作成することにより、アプリの作成時にログ記録を有効にします。 コールバックでは、次のパラメーターを受け取ります。

  • tag は、ライブラリによってコールバックに渡される文字列です。 ログ エントリに関連付けられており、ログ メッセージを並べ替えるために使用できます。
  • logLevel では、目的のログ記録のレベルを指定できます。 サポートされているログ レベルは、ErrorWarningInfoVerbose です。
  • message はログ エントリの内容です。
  • containsPII では、個人データまたは組織データを含むメッセージをログに記録するかどうかを指定します。 既定では、これは false に設定されています。そのため、ご利用のアプリケーションでは個人データはログ記録されません。 containsPIItrue の場合、このメソッドはメッセージを 2 回受信します。1 回目は containsPII パラメーターが false になっており、message には個人データが含まれず、2 回目は containsPii パラメーターが true に設定され、メッセージには個人データが含まれることがあります。 場合によっては (メッセージに個人データが含まれない場合)、メッセージは同じになります。
private StringBuilder mLogs;

mLogs = new StringBuilder();
Logger.getInstance().setExternalLogger(new ILoggerCallback()
{
   @Override
   public void log(String tag, Logger.LogLevel logLevel, String message, boolean containsPII)
   {
      mLogs.append(message).append('\n');
   }
});

既定では、MSAL logger では個人を特定できる情報や組織を特定できる情報はキャプチャされません。 個人を特定できる情報や組織を特定できる情報のログ記録を有効にするには:

Logger.getInstance().setEnablePII(true);

個人データと組織データのログ記録を無効にするには:

Logger.getInstance().setEnablePII(false);

既定では、logcat へのログ記録は無効になっています。 有効にするには:

Logger.getInstance().setEnableLogcatLog(true);

次のステップ

追加のコード サンプルについては、「Microsoft ID プラットフォームのコード サンプル」を参照してください。