Microsoft 驗證資源庫(MSAL)應用程式會產生日誌訊息,有助於診斷問題。 應用程式只需幾行程式碼即可設定日誌,並自訂細節層級及是否記錄個人與組織資料。 我們建議您建立 MSAL 日誌實作,並提供使用者在有認證問題時提交日誌的方式。
記錄層級
MSAL 提供數個層級的記錄詳細程度:
- LogAlways:此記錄層級不會進行任何層級篩選。 所有層級的日誌訊息都會被記錄。
- 關鍵:描述無法復原的應用程式或系統當機,或需要立即處理的災難性故障的日誌。
- 錯誤:表示發生了問題,並已產生錯誤。 用於除錯與問題識別。
- 警告:不一定有錯誤或故障,但主要用於診斷和定位問題。
- 資訊性:MSAL 會記錄用於資訊用途的事件,不一定用於除錯。
- Verbose(預設):MSAL 記錄函式庫行為的完整細節。
Note
並非所有 MSAL SDK 的日誌層級都可用
個人與組織資料
預設情況下,MSAL 記錄器不會擷取任何高度敏感的個人或組織資料。 圖書館提供啟用個人及組織資料記錄的選項,前提是您願意這麼做。
以下章節將提供更多關於您應用程式中 MSAL 錯誤記錄的詳細資訊。
使用 Java 登入 Android 版 MSAL
在建立應用程式時開啟登入,方法是建立一個日誌回撥。 此回呼接受下列參數:
-
tag是函式庫傳遞給回調的字串。 它與日誌條目相關聯,可以用來排序日誌訊息。 -
logLevel可讓你決定要使用哪個記錄層級。 支援的對數層級為:Error、、WarningInfoVerbose、 和 。 -
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 身分識別平台 程式碼範例。