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 参数设为 false 时,且 message 不含个人数据;第二次在 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 标识平台代码示例