Microsoft 身份验证库(MSAL)应用生成有助于诊断问题的日志消息。 应用可以使用几行代码配置日志记录,并自定义控制详细信息级别以及是否记录个人和组织数据。 建议创建 MSAL 日志记录实现,并为用户提供在遇到身份验证问题时提交日志的方法。
日志记录级别
MSAL 提供了多个级别的日志记录详细信息:
- LogAlways:在此日志级别上不执行级别筛选。 将记录所有级别的日志消息。
- 严重:描述无法恢复的应用程序或系统崩溃的日志,或需要立即注意的灾难性故障。
- 错误:表示发生了问题,并且已生成错误。 用于调试和识别问题。
- 警告:不一定是错误或失败,而是用于诊断和查明问题。
- 信息:MSAL 将记录用于信息性目的的事件,不一定用于调试。
- 详细(默认值):MSAL 将记录库行为的完整详细信息。
注释
并非所有日志级别都可用于所有 MSAL SDK
个人和组织数据
默认情况下,MSAL 记录器不会捕获任何高度敏感的个人或组织数据。 如果决定这样做,该库提供了启用记录个人和组织数据的选项。
以下部分提供有关应用程序的 MSAL 错误日志记录的更多详细信息。
使用 Java 在 MSAL for Android 中登录
创建应用时通过创建日志记录回调来启用日志记录。 回调采用以下参数:
-
tag是库传递给回调的字符串。 它与日志条目相关联,可用于对日志记录消息进行排序。 -
logLevel使你能够确定所需的日志记录级别。 支持的日志级别包括:Error、Warning、Info和Verbose。 -
message是日志条目的内容。 -
containsPII指定是记录包含个人数据的消息,还是记录组织数据。 默认情况下,此值设置为 false,以便应用程序不会记录个人数据。 如果containsPII为true,此方法将会接收两次消息:第一次在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 标识平台代码示例。