Aktivieren der Debug-Protokollierung für die Datenerfassung

Die Diagnoseprotokollierung hilft dabei, SDK-Befehle, Tag-Ausführung, Warnungen und Fehler in der Laufzeit zu erklären, in der Ihre Implementierung ausgeführt wird. Verwenden Sie sie mit Anforderungsüberprüfung wenn Sie auch Anforderungen überprüfen oder verarbeiten müssen. Wenn Sie sich nicht sicher sind, wo Sie anfangen sollen, lesen Sie den Abschnitt Debugging und Fehlerbehebung - Übersicht.

Protokollierungsmethode auswählen choose-a-logging-method

Implementierung
Protokollierung aktivieren
Wo es zu lesen ist
Umfang und Zurücksetzen
Web SDK, direkt implementiert
debugEnabled, setDebug, der alloy_debug Abfrageparameter oder Debugger
Browser-Konsole
debugEnabled gilt für jeden Besucher, der diese Konfiguration ausführt. setDebug und alloy_debug gelten nur für Ihre Browser-Registerkarte, bleiben beim Laden von Seiten derselben Herkunft auf dieser Registerkarte erhalten und haben Vorrang vor debugEnabled. Deaktivieren Sie sie explizit, wenn Sie fertig sind.
Tags, einschließlich erweiterungsverwalteter Web-SDK
_satellite.setDebug(true)
Browser-Konsole
Gilt nur für Ihren Browser. im lokalen Speicher für die Herkunft gespeichert, sodass sie über Seitenladevorgänge und Browser-Neustarts hinweg erhalten bleibt, bis Sie _satellite.setDebug(false) Site-Daten ausführen oder diese löschen.
Server-SDK
debugEnabled oder setDebug
Serverkonsole/Protokollausgabe
Die Konfiguration legt die Grundlinie für die Instanz und Anfrage-Handles fest. Laufzeitänderungen betreffen nur die aufgerufene Instanz oder das aufgerufene Handle. Einstellungen überleben einen Neustart des Prozesses nur, wenn der Code sie erneut anwendet.
Mobile SDK
MobileCore.setLogLevel
Android Logcat oder die iOS-Entwicklungskonsole
Gilt innerhalb der laufenden App. Bei jedem Start die gewünschte Ebene während der Initialisierung festlegen; Protokollierung auf Fehlerebene nach dem Debugging wiederherstellen.

Die Debug-Protokollierung von Web SDK, Tag-Bibliothek und Server-SDK ist standardmäßig deaktiviert. Mobile SDK verwendet standardmäßig eine Protokollierung auf Fehlerebene und keine Protokollierung.

IMPORTANT
Debugmeldungen können Ereignisdaten und Besucherkennung enthalten. Vor der Freigabe der Ausgabe empfiehlt sich das lokale Debugging oder das Debugging nur für die Entwicklung. Stattdessen sollten ausführliche Produktionsprotokollierungen vermieden und vertrauliche Informationen entfernt werden. Die Protokollierung weist nicht darauf hin, dass der Edge Network oder ein nachgelagerter Service ein Ereignis empfangen und verarbeitet hat.

Aktivieren der Protokollierung nach Bibliothek enable-logging

Erweitern Sie den Abschnitt für die Bibliothek, die Ihre Implementierung verwendet. In jedem Abschnitt wird erläutert, wie Sie die Protokollierung aktivieren, wo die Ausgabe gelesen wird und wie Sie die Protokollierung deaktivieren.

Web-SDK

Die folgenden Methoden steuern die Ausgabe der Web-SDK-Diagnose. Sie ermöglichen keine Tag-Bibliotheksprotokollierung für eine eigenständige Web-SDK-Implementierung.

debugEnabledim configure Befehl: Setzen Sie debugEnabled auf true in Ihrem vorhandenen configure. Diese Einstellung ist in Entwicklungsumgebungen nützlich. Wenn es im Code Ihrer Site bereitgestellt wird, ermöglicht es die Protokollierung für Besuchende, die diese Konfiguration ausführen.

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

Ändern Sie den Konfigurationswert in false oder lassen Sie ihn in nachfolgenden Bereitstellungen aus, um die Standardeinstellung wiederherzustellen. Führen Sie nicht configure ein zweites Mal auf derselben Instanz aus, um die Protokollierung umzuschalten. Verwenden Sie stattdessen setDebug. Eine lokale Debugging-Überschreibung kann Vorrang vor dem Konfigurationswert haben. Siehe debugEnabled für die Konfigurationsreferenz.

Der setDebug Befehl: Führen Sie den Befehl für die entsprechende Web-SDK-Instanz in Ihrer Browser-Konsole aus:

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

Wenn Sie fertig sind, deaktivieren Sie es:

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

Wenn Sie diesen Befehl in der Konsole ausführen, wird die lokale Instanz und nicht die Browser anderer Besucher geändert. Wenn Sie denselben Befehl in bereitgestellten Site-Code einfügen, wirkt sich dies auf Besucher aus, die diesen Code ausführen. Die lokale Überschreibung kann über Seitenladevorgänge für diese Instanz hinweg in der Sitzung derselben Herkunft bestehen bleiben, wenn der Browser-Speicher verfügbar ist. Weitere Informationen finden Sie unter setDebug .

Der alloy_debug Abfragezeichenfolgenparameter: Fügen Sie der Seiten-URL alloy_debug=true hinzu und laden Sie dann die Seite:

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

Verwenden Sie &alloy_debug=true, wenn die URL bereits Abfrageparameter enthält. Dieser Parameter ermöglicht die lokale Protokollierung, ohne den bereitgestellten Code zu ändern. Web SDK liest den -Parameter, wenn jede Instanz erstellt wird, sodass er für jede Web SDK-Instanz auf der Seite gilt. Wenn der Browser-Speicher verfügbar ist, bleibt die Einstellung für die Sitzung derselben Herkunft bestehen, sodass die Protokollierung nicht allein durch Entfernen des Parameters deaktiviert wird. Laden Sie die Seite mit alloy_debug=false oder führen Sie setDebug mit enabled: false aus, um sie zu deaktivieren. Wenn die URL weiterhin alloy_debug=true enthält, wird durch erneutes Laden die Protokollierung aktiviert.

Adobe Experience Platform Debugger: Öffnen Sie Adobe Experience Platform Debugger, wählen Sie den Abschnitt Web SDK aus und aktivieren Sie das Debugging auf der Registerkarte Konfiguration . Schalten Sie die Option aus, wenn Sie fertig sind.

Aktivieren des Web SDK-Debuggens im Debugger

Dieses Verfahren ermöglicht eine Diagnoseausgabe. Die Verwendung des Debuggers für Anfragen oder Edge-Prüfungen wird in Prüfungsanfragen für Datenerfassungen ​.

Tags und die Tag-Erweiterung „Web SDK"

Führen Sie auf einer Seite mit einer Tag-Bibliothek Folgendes in Ihrer Browser-Konsole aus:

code language-js
_satellite.setDebug(true);

Dieser Befehl macht Nachrichten aus der Tag-Bibliothek verfügbar, einschließlich _satellite.logger. Bei Web SDK-Instanzen, die von der Tag-Erweiterung „Web SDK" verwaltet werden, verwendet die Erweiterung den Tag-Debug-Modus beim Konfigurieren des SDKS und leitet nachfolgende Änderungen des Debug-Modus an diesen weiter. Gehen Sie nicht davon aus, dass durch Aktivieren des Debuggens für eine eigenständige oder extern konfigurierte SDK-Webinstanz auch die Tag-Protokollierung aktiviert wird.

Die Tag-Erweiterung von Web SDK bietet in ihrer Tag-Konfigurationsoberfläche keinen Umschalter zum Debuggen. Verwenden Sie die Konsolenmethode für eine Instanz, die von einer Erweiterung verwaltet wird. Halten Sie es von Tag-Regeln fern.

So deaktivieren Sie den Tag-Debugging-Modus und die entsprechende erweiterungsverwaltete SDK-Protokollierung:

code language-js
_satellite.setDebug(false);

Der Tag-Debug-Modus wird im lokalen Speicher des Browsers für den Ursprung der Seite gespeichert. Er bleibt so lange über Seitenladevorgänge und Browser-Neustarts hinweg erhalten, bis Sie ihn deaktivieren oder die Daten der Site löschen. Für andere Besucher wird die Protokollierung nicht aktiviert. Details zu Umfang und Persistenz finden Sie unter _satellite.setDebug() .

Die Tag-Bibliothek benachrichtigt die Erweiterung nur, wenn sich der Tag-Debugging-Modus ändert. Wenn der Tag-Debugging-Modus bereits aktiviert ist, aber Web-SDK-Meldungen fehlen, könnte eine Web-SDK-Überschreibung von setDebug oder alloy_debug die Protokollierung von SDK deaktiviert haben. Führen Sie _satellite.setDebug(false) und dann _satellite.setDebug(true) aus oder verwenden Sie dieselbe Web-SDK-Methode, die die Überschreibung festlegt.

Server-SDK

Der Server-SDK schreibt Diagnoseausgaben in die Serverkonsole und nicht in den Browser des Besuchers.

Legen Sie debugEnabled: true in Ihrem vorhandenen Server-seitigen configure fest, um die Protokollierung für die Instanz und die aus dieser Konfiguration erstellten forRequest-Handles zu aktivieren. Die Standardeinstellung lautet false. Ein vollständiges Konfigurationsbeispiel finden Sie unter debugEnabled .

Rufen Sie für eine zielgerichtete Untersuchung setDebug das Handle für Anfragen auf, das von forRequest zurückgegeben wird. Die Protokollierung erfolgt nur für dieses Handle, sodass Sie eine einzelne Anfrage debuggen können, ohne sie für alle Besucher zu aktivieren:

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

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

Beim Aufrufen von setDebug auf der Instanz auf oberster Ebene ändert sich die Protokollierung nur für Aufrufe, die direkt auf dieser Instanz getätigt werden, nicht für die Anforderungs-Handler, bis Sie diese deaktivieren oder der Prozess neu gestartet wird. Um die Grundlinie für alle Anforderungs-Handles zu ändern, aktualisieren Sie debugEnabled in der Konfiguration des Servers.

Meldungen identifizieren die Instanz in eckigen Klammern, z. B. [alloy], und enthalten Konfiguration, Methodeneingaben/-ergebnisse, Warnungen und Fehler. Überprüfen Sie die Ausgabe des Server-Prozesses oder das Protokollziel, an das ihn Ihre Hosting-Umgebung weiterleitet.

Mobile SDK

Verwenden Sie die setLogLevel-API von Mobile Core, um die diagnostische Ausführlichkeit auszuwählen. Android ist standardmäßig auf LoggingMode.ERROR eingestellt; iOS ist standardmäßig auf LogLevel.error eingestellt. Legen Sie die gewünschte Ebene bei der App-Initialisierung fest, bevor Sie das Problem reproduzieren.

Android: Aktivieren Sie die ausführliche Protokollierung in Ihrer Entwicklungs-App:

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

MobileCore.setLogLevel(LoggingMode.VERBOSE)

Ausgabe für den laufenden App Prozess im "" von Android Studio anzeigen. Mobile SDK-Nachrichten verwenden das AdobeExperienceSDK-Tag. Filtern Sie also mit tag:AdobeExperienceSDK und stellen Sie sicher, dass der Protokoll-Viewer Debugging- und ausführliche Meldungen zulässt. Wiederherstellen der Protokollierung auf Fehlerebene nach Abschluss:

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

iOS: Aktivieren Sie die Ablaufverfolgungsprotokollierung in Ihrer Entwicklungs-App:

code language-swift
import AEPCore
import AEPServices

MobileCore.setLogLevel(.trace)

Zeigen Sie die Konsole der ausgeführten App in Xcode an und filtern Sie nach AEP SDK. Wiederherstellen der Protokollierung auf Fehlerebene nach Abschluss:

code language-swift
MobileCore.setLogLevel(.error)

Die Rückkehr zur Fehlerebene reduziert die Diagnoseausgabe, unterdrückt aber keine Fehler. Diese Aufrufe ändern die Protokollierung in der laufenden App, nicht in anderen Installationen. Stellen Sie sicher, dass der Initialisierungs-Code die ausführliche Protokollierung beim nächsten Launch oder in einem Produktions-Build nicht erneut aktiviert.

Weitere Informationen zu Java​ Objective-C, unterstützten Ebenen und versionsspezifischen ​ finden Sie in der „Mobile Core API-Referenz“. Verwenden Sie für React Native oder Flutter die API, die von Ihrem Mobile SDK-Wrapper bereitgestellt wird, anstatt native Aufrufe direkt in Wrapper-Code zu kopieren. Informationen zur Überprüfung von Connected Events anstelle der Ausgabe der Laufzeitkonsole finden Sie unter Assurance.

Lesen und Fehlerbehebung bei der Diagnoseausgabe read-output

Verwenden Sie die folgenden Kennungen, um SDK- und Tag-Meldungen in der Protokollausgabe „Belegt“ zu finden. Wenn Sie eine Web-SDK- oder Server-SDK-Instanz umbenannt haben, suchen Sie nach diesem Namen anstelle von alloy.

Quelle
Suchen Sie nach
Web SDK
Der Instanzname in Klammern, z. B. [alloy], gefolgt von einem Komponentennamen für Komponentenmeldungen
Tags
🚀 gefolgt von der Ursprungsregel, der Erweiterung oder dem Datenelementnamen in Klammern. Siehe _satellite.logger.
Server-SDK
Der Instanzname in Klammern, z. B. [alloy]
Mobile SDK (Android)
Die AdobeExperienceSDK des Logcat-Tags
Mobile SDK (iOS)
AEP SDK gefolgt von der Protokollebene und der Erweiterungsbezeichnung
  • Ausgabespeicherort überprüfen: Browser-Einstellungen zeigen keine Server- oder nativen App-Protokolle an. Wählen Sie die richtige Browser-Seite, den richtigen Server- oder Anwendungsprozess aus.
  • Protokollebenen überprüfen: Web-SDK-Nachrichten verwenden standardmäßige Konsolenebenen, die von Browsern standardmäßig angezeigt werden. Für Meldungen von _satellite.logger.debug() ist die ausführliche Ebene der Konsole erforderlich, während für Meldungen des Typs Mobile SDK Debug und ausführliche Meldungen eine Protokoll-Anzeige mit diesen Ebenen erforderlich ist.
  • Protokollierung vor der Aktion aktivieren: Vorhandene Nachrichten werden nicht neu erstellt, nur weil die Protokollierung aktiviert ist. Problem nach der Aktivierung reproduzieren.
  • Überprüfen des aktiven Steuerelements: Lokale Überschreibungen von Web SDK können die Konfiguration ersetzen. Tags und eigenständige SDK-Instanzen verwenden nicht unbedingt dieselbe Einstellung.
  • Protokolle von Transportnachweisen unterscheiden: Ein Protokoll kann anzeigen, dass ein Befehl ausgeführt oder ein Transport ausgewählt wurde, ohne den Empfang zu beweisen. Siehe Überprüfen von Datenerfassungsanfragen zum Überprüfen von Anfragen, Antworten und unterstützten Verarbeitungsansichten.

Web SDK Überwachungs-Hooks sind ein separater programmgesteuerter Mechanismus und werden unabhängig von der Einstellung für die Debug-Protokollierung ausgeführt. Raw-API-Clients, Datenströme und Ereignisweiterleitung verwenden keinen gemeinsamen universellen SDK-Protokollierungs-Switch. Verwenden Sie die Anwendungsprotokolle bzw​ "".

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