MSAL for Android 中的日志记录

Microsoft 身份验证库 (MSAL) 应用生成日志消息,这些消息可以用来诊断问题。 应用可以通过数行代码配置日志记录,并可对详细程度以及是否记录个人和组织数据进行自定义控制。 建议创建 MSAL 日志记录实现,并提供一种方式来让用户在遇到身份验证问题时提交日志。

日志记录级别

MSAL 提供多个日志记录详细级别:

  • LogAlways:此日志级别不执行级别筛选。 将记录所有级别的日志消息。
  • 严重:描述不可恢复的应用程序/系统崩溃或需要立即引起注意的灾难性故障的日志。
  • 错误:指示出现问题并已生成错误。 用于调试并确定问题。
  • 警告:不一定会出现错误或故障,只是为了诊断和指出问题。
  • 信息:MSAL 将要记录的事件可为用户提供信息,不一定用于调试。
  • 详细(默认值):MSAL 将记录库行为的完整详细信息。

注意

并非所有日志级别都适用于所有 MSAL SDK

个人和组织数据

默认情况下,MSAL 记录器不捕获任何高度敏感的个人或组织数据。 该库提供相关选项,允许你自行决定是否记录个人和组织数据。

以下各节将详细介绍应用程序的 MSAL 错误日志记录。

使用 Java 的 MSAL for Android 中的日志记录

创建应用时通过创建日志记录回调来启用日志记录。 该回调采用以下参数:

  • tag 由库传递给回调的字符串。 它与日志项目相关联,可用于对日志记录消息排序。
  • logLevel 用于确定所需的日志记录级别。 支持的日志级别为:ErrorWarningInfoVerbose
  • message 是日志条目的内容。
  • containsPII 指定是要记录包含个人数据还是组织数据的消息。 默认情况下,此项设置为 false,不允许应用程序记录个人数据。 如果 containsPIItrue,则此方法会接收消息两次:第一次时 containsPII 参数设置为 falsemessage 不包含个人数据;第二次时 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.getInstance().setEnablePII(true);

若要禁止记录个人数据和组织数据:

Logger.getInstance().setEnablePII(false);

默认情况下,将禁用记录到 logcat。 若要启用:

Logger.getInstance().setEnableLogcatLog(true);

后续步骤

有关更多代码示例,请参阅 Microsoft 标识平台代码示例