完成以下步驟進行 iOS 用戶端診斷:
初始化診斷服務
診斷功能在使用之前需要進行初始化:
#import <MPDiagnosis/MPDiagnoseAdapter.h>
[MPDiagnoseAdapter initDiagnose];
診斷服務支援使用 移動同步 或 訊息推送 方式拉取診斷記錄,兩種方式的初始化代碼不同。
移動同步方式初始化
若採用移動同步的方式拉取診斷記錄,則在使用診斷功能之前需要進行初始化。
#import <MPDiagnosis/MPDiagnoseAdapter.h>
[MPDiagnoseAdapter initDiagnose];
訊息推送方式初始化
您需要先接入訊息推送組件,完成 訊息推送初始化。然後,在接收到訊息推送之後,進行如下方法調用:
#import <APLog/APLogMgr.h>
[[APLogMgr sharedInstance] handlePushDiagnosisCmd:[notification.userInfo objectForKey:@"content"]];
舊版本升級注意事項
10.1.32 版本之後不再需要添加 APLogUser
類的 Category
檔案,中介層會實現封裝,升級版本後請檢查工程中是否存在舊版本配置,如果有請移除。下面為新版本應移除的配置。
設定使用者識別碼
診斷服務根據 使用者識別碼 拉取日誌。
在
MPaaSInterface
的實現中通過userId
函數配置使用者識別碼。當使用者切換時,即
MPaaSInterface
的userId
函數中配置的值發生變化時,調用以下函數:[MPDiagnoseAdapter userChange];
詳情可參考
MPDiagnosis
下的MPDiagnoseAdapter.h
檔案。
寫診斷記錄
調用以下方法在 App 關鍵鏈路寫診斷記錄:
/**
* Log a message with kAPLogLevelInfo level.
*
* @param message An NSString object that contains a printf-style string containing a log message and placeholders for the arguments.
* @param ... The arguments displayed in the format string.
*/
#define APLogInfo(tag,fmt, ...) \
APLogToFile(tag, kAPLogLevelInfo, fmt, ##__VA_ARGS__)
詳情可參考 APLog
下的 APLog.h
檔案。
例如,可以在啟動完成後,調用下面的語句進行診斷記錄的寫入:
APLogInfo(@"mPaaS", @"Start Cost %d", time);
APLogInfo 寫入的日誌預設不會在 Xcode 控制台列印,若希望在開發階段控制台列印相關日誌,可以在工程中添加 ConsoleLog 檔案。
出於安全考慮,若您希望應用上線後不列印任何日誌(包括 NSLog 和 APLogInfo 列印的日誌),可在產生應用 release 包時在工程中添加 RemoveNSLog 檔案。
查看本地診斷記錄
您可以在沙箱目錄下找到診斷記錄,如下圖所示。該日誌預設不會上報,只有在需要時才通過控制台下髮指令拉取。
儲存期限: 預設保留 6 天。如果檢測到前 3 天的記錄檔總大小超過 30 MB,前 3 天的日誌都會被刪除。
檔案大小限制:預設不超過 100 MB。超過 100 MB 後,會按時間順序從前到後刪除前一半大小的日誌。例如有 120 MB 的日誌,會刪除 60 MB。
擷取線上使用者診斷記錄
應用發布上線後,要擷取用戶端本地診斷記錄排查問題,可通過 mPaaS 控制台下髮指令擷取相關診斷記錄。具體操作,查看 移動分析 > 日誌拉取。