다음을 통해 공유


Android용 MSAL에서 로깅

MSAL(Microsoft 인증 라이브러리) 앱은 문제를 진단하는 데 도움이 되는 로그 메시지를 생성합니다. 앱은 몇 줄의 코드를 사용하여 로깅을 구성하고 세부 정보 수준 및 개인 데이터와 조직 데이터가 기록되는지 여부에 대한 제어를 사용자 지정할 수 있습니다. MSAL 로깅 구현을 만들고 사용자에게 인증 문제가 있을 때 로그를 제출할 수 있는 방법을 제공하는 것이 좋습니다.

로깅 수준

MSAL은 여러 수준의 로깅 세부 정보를 제공합니다.

  • LogAlways: 이 로그 수준에서 수준 필터링이 수행되지 않습니다. 모든 수준의 로그 메시지를 로그합니다.
  • 위험: 복구할 수 없는 애플리케이션 또는 시스템 크래시나 즉각적인 주의가 필요한 치명적인 오류를 설명하는 로그입니다.
  • 오류: 무언가 잘못되어 오류가 발생했음을 나타냅니다. 디버깅 및 문제 식별에 사용됩니다.
  • 경고: 오류 또는 장애가 반드시 발생한 것은 아니지만, 문제를 진단하고 파악하기 위한 것입니다.
  • 정보 제공: MSAL은 반드시 디버깅하기 위한 것이 아니라 정보를 제공하기 위해 사용되는 이벤트를 기록합니다.
  • 세부 정보(기본): MSAL은 라이브러리 동작의 전체 세부 정보를 기록합니다.

참고 항목

모든 MSAL SDK에 대해 모든 로그 수준을 사용할 수 있는 것은 아닙니다.

개인 및 조직 데이터

기본적으로 MSAL 로거는 매우 중요한 개인 또는 조직 데이터를 캡처하지 않습니다. 라이브러리는 개인 및 조직 데이터 로깅을 사용하도록 설정하는 옵션을 제공합니다.

다음 섹션에서는 애플리케이션의 MSAL 오류 로깅에 대한 자세한 정보를 제공합니다.

Java를 사용하여 Android용 MSAL에서 로깅

로깅 콜백을 만들어 앱 생성 시 로깅을 켭니다. 콜백은 다음 매개 변수를 사용합니다.

  • tag는 라이브러리에서 콜백에 전달되는 문자열입니다. 로그 항목과 연결되며 로깅 메시지를 정렬하는 데 사용할 수 있습니다.
  • logLevel을 사용하면 원하는 로깅 수준을 결정할 수 있습니다. 지원되는 로그 수준은 Error, Warning, Info, 및 Verbose입니다.
  • message는 로그 항목의 콘텐츠입니다.
  • containsPII는 개인 데이터 또는 조직 데이터가 포함된 메시지를 로깅할지 여부를 지정합니다. 애플리케이션에서 개인 데이터를 기록하지 않도록 기본적으로 false로 설정됩니다. containsPIItrue이면 이 메서드에서 메시지를 두 번 받습니다. 첫 번째는 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 ID 플랫폼 코드 샘플을 참조하세요.