啟用資料收集的偵錯記錄

診斷記錄可協助說明在您的實施執行階段中,SDK命令、標籤執行、警告和錯誤。 當您也需要檢查要求或處理時,可與要求檢查搭配使用。 如果您不確定從何處開始,請參閱除錯與疑難排解概觀。

選擇記錄方法 choose-a-logging-method

實作
啟用記錄
閱讀位置
範圍和重設
直接實作的網頁SDK
debugEnabled、setDebug、alloy_debug查詢引數或偵錯工具
瀏覽器主控台
debugEnabled適用於執行該設定的每位訪客。 setDebug和alloy_debug僅套用至您的瀏覽器索引標籤,在該索引標籤中跨相同來源頁面載入持續存在,且優先於debugEnabled。 完成後,明確加以停用。
標籤,包括擴充功能管理的網頁SDK
_satellite.setDebug(true)
瀏覽器主控台
僅適用於您的瀏覽器。 儲存在來源的本機儲存體中,因此會在頁面載入和瀏覽器重新啟動時持續存在,直到您執行_satellite.setDebug(false)或清除網站資料為止。
伺服器SDK
debugEnabled或 setDebug
伺服器主控台/記錄輸出
組態會設定執行個體和請求控制代碼的基準。 執行階段變更只會影響呼叫的執行個體或控制代碼。 除非您的程式碼重新套用設定,否則這些設定不會在程式重新啟動後繼續使用。
Mobile SDK
MobileCore.setLogLevel
Android Logcat或iOS開發主控台
套用至執行中的應用程式。 在每次啟動初始化期間設定所要的層級;在偵錯後還原錯誤層級的記錄。

Web SDK、tag-library和伺服器SDK除錯記錄預設為停用。 行動SDK預設為錯誤層級的記錄,而非無記錄。

IMPORTANT
除錯訊息可包含事件資料和訪客識別碼。 偏好本機或僅限開發的偵錯,避免詳細的生產記錄,並在共用輸出之前移除敏感資訊。 記錄無法證明Edge Network或下游服務已接收並處理事件。

啟用依程式庫的記錄 enable-logging

展開實施所使用程式庫的區段。 每一節都說明如何啟用記錄、從何處讀取輸出,以及如何關閉記錄。

網頁SDK

下列方法可控制Web SDK診斷輸出。 它們不會為獨立的Web SDK實作啟用標籤庫記錄。

configure命令​中的debugEnabled:在現有configure呼叫中將debugEnabled設定為true。 此設定在開發環境中相當實用。 如果部署在您網站的程式碼中,它可讓執行該設定的訪客進行記錄。

code language-js
alloy("configure", {
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  debugEnabled: true
});

將組態值變更為false或在後續部署中省略它以還原預設值。 請勿在相同執行個體上第二次執行configure以切換記錄;請改用setDebug。 本機偵錯覆寫可以優先於設定值。 如需組態參考,請參閱debugEnabled。

setDebug命令:對瀏覽器主控台中的適當Web SDK執行個體執行此命令:

code language-js
alloy("setDebug", { enabled: true });

完成後,將其停用:

code language-js
alloy("setDebug", { enabled: false });

在主控台中執行此命令會變更您的本機執行個體,而非其他訪客的瀏覽器。 如果您在已部署的網站程式碼中放置相同的命令,則會影響執行該程式碼的訪客。 當瀏覽器儲存空間可供使用時,本機覆寫可在相同來源標籤工作階段中,在該執行個體的頁面載入之間持續存在。 如需詳細資訊,請參閱setDebug。

alloy_debug查詢字串引數:將alloy_debug=true新增至頁面URL,然後載入頁面:

code language-text
https://example.com/?alloy_debug=true

如果URL已有查詢引數,請使用&alloy_debug=true。 此引數可啟用本機記錄,而不變更已部署的程式碼。 Web SDK會在建立每個執行個體時讀取引數,因此會套用至頁面上的每個Web SDK執行個體。 當瀏覽器儲存空間可用時,設定會持續適用於標籤的相同來源工作階段,因此單獨移除引數不會停用記錄。 載入包含alloy_debug=false的頁面,或執行setDebug包含enabled: false以停用它。 如果URL仍包含alloy_debug=true,則重新載入它會再次啟用記錄。

Adobe Experience Platform Debugger:開啟Adobe Experience Platform Debugger,選取Web SDK區段,並在其設定索引標籤中啟用偵錯。 完成時關閉選項。

在Debugger中啟用Web SDK偵錯

此程式可啟用診斷輸出;使用Debugger進行要求或Edge檢查包含在檢查資料收集要求中。

標籤和網頁SDK標籤擴充功能

在含有標籤庫的頁面上,在瀏覽器主控台中執行下列動作:

code language-js
_satellite.setDebug(true);

這個命令會公開標籤程式庫訊息,包括_satellite.logger輸出。 對於由Web SDK標籤擴充功能管理的Web SDK例項,擴充功能會在設定SDK時使用標籤偵錯模式,並將後續偵錯模式變更轉送至擴充功能。 請勿認為開啟獨立或外部設定的Web SDK執行個體的偵錯功能也會啟用標籤記錄。

Web SDK標籤擴充功能在其標籤設定UI中未提供除錯切換。 針對擴充功能管理的執行個體使用主控台方法。 將其排除在標籤規則之外。

若要停用標籤偵錯模式與對應的擴充功能管理的SDK記錄:

code language-js
_satellite.setDebug(false);

標籤偵錯模式會儲存在瀏覽器本機儲存空間中作為頁面的來源。 它會在頁面載入和瀏覽器重新啟動時持續存在,直到您停用或清除網站資料時,才會為其他訪客啟用記錄功能。 如需範圍和持續性的詳細資訊,請參閱_satellite.setDebug()。

標籤程式庫只會在標籤偵錯模式變更時通知擴充功能。 如果標籤偵錯模式已開啟,但遺失Web SDK訊息,則來自setDebug或alloy_debug的Web SDK覆寫可能已關閉SDK記錄。 執行_satellite.setDebug(false),然後執行_satellite.setDebug(true),或使用設定覆寫的相同Web SDK方法。

伺服器SDK

伺服器SDK將診斷輸出寫入伺服器主控台,而非訪客的瀏覽器。

在您的現有伺服器端configure呼叫中設定debugEnabled: true以啟用執行個體的記錄,以及使用該設定建立的forRequest控制代碼。 預設值為 false。 如需完整的設定範例,請參閱debugEnabled。

針對目標調查,請呼叫forRequest傳回之要求範圍控制代碼上的setDebug。 僅記錄該控制代碼的變更,這樣您便能偵錯單一請求,而無需為所有訪客啟用它:

code language-js
const visitor = alloy.forRequest({ request: req });

await visitor.setDebug({ enabled: true });
await visitor.sendEvent({
  xdm: { eventType: "web.webpagedetails.pageViews" }
});

在頂層執行個體上呼叫setDebug只會變更直接在該執行個體上進行的呼叫的記錄,而不會變更其要求控制碼的記錄,直到您停用它或處理程式重新啟動為止。 若要變更所有要求控制碼的基準,請更新伺服器組態中的debugEnabled。

訊息會以方括弧識別執行個體,例如[alloy],並包含組態、方法輸入/結果、警告和錯誤。 檢閱伺服器處理程式的輸出或您的託管環境路由它的記錄目的地。

Mobile SDK

使用行動核心的setLogLevel API來選取診斷詳細資訊。 Android預設為LoggingMode.ERROR;iOS預設為LogLevel.error。 在重新產生問題之前,於應用程式初始化期間設定所要的層級。

Android:在您的開發應用程式中啟用詳細記錄功能:

code language-kotlin
import com.adobe.marketing.mobile.LoggingMode
import com.adobe.marketing.mobile.MobileCore

MobileCore.setLogLevel(LoggingMode.VERBOSE)

在Android Studio的​ Logcat ​中檢視執行中的應用程式程式的輸出。 行動SDK訊息使用AdobeExperienceSDK標籤,因此請使用tag:AdobeExperienceSDK篩選,並確定記錄檢視器允許偵錯和詳細訊息。 完成時還原錯誤層級記錄:

code language-kotlin
MobileCore.setLogLevel(LoggingMode.ERROR)

iOS:在您的開發應用程式中啟用追蹤記錄:

code language-swift
import AEPCore
import AEPServices

MobileCore.setLogLevel(.trace)

在Xcode中檢視執行中的應用程式主控台,並篩選AEP SDK。 完成時還原錯誤層級記錄:

code language-swift
MobileCore.setLogLevel(.error)

回到錯誤層級會減少診斷輸出;它不會抑制錯誤。 這些呼叫會變更執行應用程式中的記錄,而非其他安裝。 請確認您的初始化程式碼不會在下次啟動或生產組建中重新啟用詳細記錄功能。

如需Java、Objective-C、支援的層級和特定版本的詳細資訊,請參閱行動核心API參考。 若為React Native或Flutter,請使用您的Mobile SDK包裝函式公開的API,而非將原生呼叫直接複製到包裝函式程式碼中。 如需連線事件檢查,而非執行階段主控台輸出,請參閱Assurance。

讀取並疑難排解診斷輸出 read-output

使用以下識別碼來尋找SDK,並在繁忙的記錄輸出中標籤訊息。 如果您重新命名Web SDK或伺服器SDK執行個體,請尋找該名稱而非alloy。

來源
尋找
Web SDK
括弧內的執行個體名稱,例如[alloy],後面接著元件訊息的元件名稱
標記
🚀後面接著方括弧中的原始規則、副檔名或資料元素名稱。 請參閱_satellite.logger。
伺服器SDK
括弧內的執行個體名稱,例如[alloy]
行動SDK (Android)
Logcat標籤AdobeExperienceSDK
行動SDK (iOS)
AEP SDK,後面接著記錄層級和擴充功能標籤
  • 檢查輸出位置:瀏覽器設定不會公開伺服器或原生應用程式記錄檔。 選取正確的瀏覽器頁面、伺服器程式或應用程式程式。
  • 檢查記錄層級:網頁SDK訊息使用瀏覽器預設顯示的標準主控台層級。 來自_satellite.logger.debug()的訊息需要主控台的詳細資訊層級,而Mobile SDK除錯和詳細資訊需要包含這些層級的記錄檢視器。
  • 在動作之前啟用記錄功能:不會因為您開啟記錄功能而重新建立現有訊息。 啟用問題後重新產生。
  • 檢查使用中的控制項: Web SDK本機覆寫可以取代設定。 標籤和獨立SDK例項不一定會共用設定。
  • 將記錄檔與傳輸證據區分開來:記錄檔可顯示已執行命令或已選取傳輸,但未證明接收。 請參閱檢查資料收集要求以檢查要求、回應和支援的處理檢視。

Web SDK 監視鉤點是獨立的程式化機制,不論偵錯記錄設定為何,都會執行。 原始API使用者端、資料串流和事件轉送不共用一個通用SDK記錄切換器;請視情況使用其應用程式記錄或服務診斷。

recommendation-more-help
experience-platform-help-collection