데이터 수집에 대한 디버그 로깅 활성화

진단 로깅을 사용하면 구현이 실행되는 런타임에서 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 개발 콘솔
실행 중인 앱 내에 적용됩니다. 각 론치에서 초기화하는 동안 원하는 수준을 설정합니다. 디버깅 후 오류 수준 로깅을 복원합니다.

웹 SDK, 태그 라이브러리 및 서버 SDK 디버그 로깅은 기본적으로 비활성화됩니다. 모바일 SDK의 기본값은 로깅 없음이 아닌 오류 수준 로깅입니다.

IMPORTANT
디버그 메시지에는 이벤트 데이터와 방문자 식별자가 포함될 수 있습니다. 로컬 또는 개발 전용 디버깅을 선호하고, 자세한 프로덕션 로깅을 피하고, 출력을 공유하기 전에 중요한 정보를 제거합니다. 로깅은 Edge Network 또는 다운스트림 서비스가 이벤트를 수신하고 처리했음을 증명하지 않습니다.

라이브러리별 로깅 활성화 enable-logging

구현에서 사용하는 라이브러리에 대한 섹션을 확장합니다. 각 섹션에서는 로깅을 활성화하는 방법, 출력을 읽는 위치 및 로깅을 해제하는 방법을 설명합니다.

웹 SDK

다음 메서드는 웹 SDK 진단 출력을 제어합니다. 독립 실행형 웹 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 명령: 브라우저 콘솔에서 적절한 웹 SDK 인스턴스에 대해 명령을 실행합니다.

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

완료되면 비활성화합니다.

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

콘솔에서 이 명령을 실행하면 다른 방문자의 브라우저가 아니라 로컬 인스턴스가 변경됩니다. 배포된 사이트 코드에 동일한 명령을 입력하면 해당 코드를 실행하는 방문자에게 영향을 줍니다. 로컬 재정의는 브라우저 저장소를 사용할 수 있을 때 동일한 원본 탭 세션에서 해당 인스턴스에 대한 페이지 로드 간에 지속될 수 있습니다. 자세한 내용은 setDebug을(를) 참조하십시오.

alloy_debug 쿼리 문자열 매개 변수: 페이지 URL에 alloy_debug=true을(를) 추가한 다음 페이지를 로드합니다.

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

URL에 이미 쿼리 매개 변수가 있는 경우 &alloy_debug=true을(를) 사용합니다. 이 매개 변수를 사용하면 배포된 코드를 변경하지 않고 로컬에서 로깅할 수 있습니다. Web SDK은 각 인스턴스가 생성될 때 매개 변수를 읽으므로 페이지의 모든 웹 SDK 인스턴스에 적용됩니다. 브라우저 저장소를 사용할 수 있는 경우 탭의 동일 원본 세션 동안 설정이 유지되므로 매개 변수를 제거해도 로깅이 비활성화되지 않습니다. 페이지를 alloy_debug=false(으)로 로드하거나 setDebug(으)로 enabled: false(으)로 실행하여 비활성화합니다. URL에 alloy_debug=true이(가) 여전히 포함되어 있는 경우 다시 로드하면 로깅이 다시 활성화됩니다.

Adobe Experience Platform Debugger: Adobe Experience Platform Debugger을 열고 웹 SDK 섹션을 선택한 다음 구성 탭에서 디버깅을 사용하도록 설정합니다. 완료하면 옵션을 끕니다.

디버거에서 웹 SDK 디버깅 사용

이 절차를 통해 진단 출력을 사용할 수 있습니다. 요청이나 Edge 검사에 디버거를 사용하는 방법은 데이터 수집 요청 검사에서 다룹니다.

태그 및 웹 SDK 태그 확장

태그 라이브러리가 있는 페이지에서 브라우저 콘솔에서 다음을 실행합니다.

code language-js
_satellite.setDebug(true);

이 명령은 _satellite.logger 출력을 포함하여 태그 라이브러리 메시지를 표시합니다. Web SDK 태그 확장 기능으로 관리되는 웹 SDK 인스턴스의 경우 확장 기능은 SDK을 구성할 때 태그 디버그 모드를 사용하고 후속 디버그 모드 변경 사항을 해당 인스턴스에 전달합니다. 독립 실행형 또는 외부에서 구성된 웹 SDK 인스턴스에 대해 디버깅을 켜면 태그 로깅도 사용된다고 가정하지 마십시오.

웹 SDK 태그 확장은 태그 구성 UI에 디버그 토글을 제공하지 않습니다. 확장 관리 인스턴스에 대해 콘솔 메서드를 사용합니다. 태그 규칙에 맞지 않도록 합니다.

태그 디버그 모드 및 해당 확장 관리 SDK 로깅을 비활성화하려면 다음을 수행하십시오.

code language-js
_satellite.setDebug(false);

태그 디버그 모드는 페이지의 출처에 대한 브라우저의 로컬 저장소에 저장됩니다. 페이지 로드 및 브라우저 다시 시작에 걸쳐 사이트를 비활성화하거나 사이트의 데이터를 지울 때까지 지속되며 다른 방문자에 대한 로깅을 활성화하지 않습니다. 범위 및 지속성 세부 정보는 _satellite.setDebug()을(를) 참조하십시오.

태그 라이브러리는 태그 디버그 모드가 변경될 때만 확장에 알립니다. 태그 디버그 모드가 이미 켜져 있지만 웹 SDK 메시지가 없는 경우 setDebug 또는 alloy_debug에서 웹 SDK 재정의로 인해 SDK 로깅이 해제되었을 수 있습니다. _satellite.setDebug(false)을(를) 실행한 다음 _satellite.setDebug(true)을(를) 실행하거나 재정의를 설정하는 동일한 웹 SDK 메서드를 사용합니다.

서버 SDK

Server SDK은(는) 방문자의 브라우저가 아닌 서버 콘솔에 진단 출력을 기록합니다.

인스턴스 및 해당 구성에서 만든 forRequest 핸들에 대한 로깅을 사용하도록 설정하려면 기존 서버측 configure 호출에서 debugEnabled: true을(를) 설정하십시오. 기본값은 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

Mobile Core의 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, 지원되는 수준 및 버전별 세부 정보에 대해서는 Mobile Core API 참조를 참조하십시오. React Native 또는 Flutter의 경우 네이티브 호출을 래퍼 코드에 직접 복사하지 말고 Mobile SDK 래퍼에 의해 노출된 API를 사용하십시오. 런타임 콘솔 출력이 아닌 연결된 이벤트 검사에 대해서는 Assurance을 참조하십시오.

진단 출력 읽기 및 문제 해결 read-output

다음 식별자를 사용하여 사용 중인 로그 출력에서 SDK 및 태그 메시지를 찾습니다. Web SDK 또는 Server SDK 인스턴스의 이름을 변경한 경우 alloy 대신 해당 이름을 찾습니다.

소스
다음을 찾습니다.
Web SDK
구성 요소 메시지의 구성 요소 이름 뒤에 [alloy]과(와) 같이 대괄호로 묶인 인스턴스 이름
태그
🚀 뒤에 대괄호로 묶인 원래 규칙, 확장 또는 데이터 요소 이름이 옵니다. _satellite.logger을(를) 참조하십시오.
서버 SDK
대괄호 안의 인스턴스 이름(예: [alloy])
모바일 SDK(Android)
Logcat 태그 AdobeExperienceSDK
모바일 SDK(iOS)
AEP SDK, 로그 수준 및 확장 레이블 뒤
  • 출력 위치를 확인: 브라우저 설정이 서버 또는 네이티브 앱 로그를 표시하지 않습니다. 올바른 브라우저 페이지, 서버 프로세스 또는 앱 프로세스를 선택합니다.
  • 로그 수준 확인: 웹 SDK 메시지는 브라우저가 기본적으로 표시하는 표준 콘솔 수준을 사용합니다. _satellite.logger.debug()의 메시지에는 콘솔의 자세한 수준이 필요하며 Mobile SDK 디버그 및 자세한 메시지에는 해당 수준을 포함하는 로그 뷰어가 필요합니다.
  • 작업 전에 로깅을 사용하도록 설정: 로깅을 설정했기 때문에 기존 메시지가 다시 만들어지지 않습니다. 활성화한 후 문제를 재현합니다.
  • 활성 컨트롤을 확인합니다: 웹 SDK 로컬 재정의가 구성을 대체할 수 있습니다. 태그와 독립형 SDK 인스턴스는 반드시 설정을 공유할 필요는 없습니다.
  • 로그를 전송 증거와 구분: 로그에는 수신 확인 없이 명령이 실행되었거나 전송이 선택되었음을 보여줄 수 있습니다. 요청, 응답 및 지원되는 처리 보기를 검사하려면 데이터 수집 요청 검사를 참조하십시오.

Web SDK 모니터링 후크는 별도의 프로그래밍 메커니즘이며 디버그 로깅 설정에 관계없이 실행됩니다. 원시 API 클라이언트, 데이터스트림 및 이벤트 전달은 하나의 범용 SDK 로깅 스위치를 공유하지 않습니다. 해당 애플리케이션 로그 또는 서비스 진단을 적절하게 사용하십시오.

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