다음을 통해 공유


Application Insights SDK에 대한 자체 진단 로그를 수집하는 방법

Application Insights SDK를 사용하여 Application Insights 자동 계측 또는 수동 계측을 통해 애플리케이션을 계측하는 경우 Application Insights SDK 자체에 문제가 발생할 수 있습니다. 이 시나리오에서는 Application Insights와 관련된 문제를 찾아 진단하기 위해 Application Insights SDK의 진단 로그가 필요합니다.

이 문서에서는 다음 Application Insights SDK에 대한 자체 진단 로그를 수집하는 방법을 소개합니다.

Application Insights .NET/.NET Core Framework SDK

Application Insights .NET/.NET Core Framework SDK 버전 2.18.0-beta2에서 SDK 자체에서 로그를 캡처하고 지정된 디렉터리의 로그 파일에 쓰기 위해 "자체 진단" 기능이 제공됩니다.

자체 진단 구성

다음 콘텐츠가 있는 ApplicationInsightsDiagnostics.json 파일을 사용하여 자체 진단을 구성합니다.

{
    "LogDirectory": "<LogDirectory>",
    "FileSize": <FileSize>,
    "LogLevel": "<LogLevel>"
}

참고 항목

  • 자체 진단을 위한 구성 파일에는 구문 분석할 Application Insights .NET/.NET Core Framework SDK에 대한 유효한 매개 변수가 있어야 합니다. 파일이 잘못되었거나 형식이 잘못된 경우 SDK는 해당 파일을 무시하고 자체 진단을 사용하도록 설정되지 않습니다. 그러나 모니터링되는 애플리케이션의 정상적인 작동에는 영향을 주지 않습니다.
  • 이 구성 파일은 4KB(KB)를 넘지 않아야 합니다. 그렇지 않으면 처음 4KB의 콘텐츠만 읽습니다.
  • Application Insights .NET/.NET Core Framework SDK는 10초마다 구성 파일을 읽고 로그 파일을 만들거나 순환적으로 덮어씁니다.

구성 매개 변수에 대한 몇 가지 설명은 다음과 같습니다.

구성 매개 변수 설명
LogDirectory 로그 파일이 저장되는 디렉터리입니다. 웹 애플리케이션의 현재 작업 디렉터리에 대한 절대 경로 또는 상대 경로일 수 있습니다. 이 로그 파일의 이름은 YearMonthDay-HourMinuteSecond.ExecutableName.ProcessId.log(예: 20220307-193542.w3wp.exe.7692.log)로 지정됩니다. 파일 이름은 파일을 만들 때 생성되는 타임스탬프로 시작합니다.
FileSize 로그 파일 크기를 KB로 지정하는 양의 정수입니다. 이 값은 1MB(메가바이트)에서 128MB(포함) 사이이거나 가장 가까운 상한 또는 하한으로 반올림됩니다. 로그 파일은 구성된 최대 크기를 초과하지 않습니다.
LogLevel 캡처할 이벤트의 수준입니다. 이 값은 .의 EventLevel필드 중 하나와 일치해야 합니다. 심각도 수준이 낮을수록 심각도 수준이 더 높습니다(예: Warning 수준 및 Critical 포함Error).

웹 애플리케이션에 대한 자체 진단

자체 진단을 사용하도록 설정하려면 웹 애플리케이션의 현재 작업 디렉터리로 이동하여 ApplicationInsightsDiagnostics.json 구성 파일을 만듭니다.

자체 진단을 사용하지 않도록 설정하려면 구성 파일을 삭제합니다. 웹 애플리케이션이 실행되는 동안에도 애플리케이션을 다시 시작하지 않고도 자체 진단을 사용하거나 사용하지 않도록 설정할 수 있습니다.

대부분의 경우 애플리케이션과 함께 파일을 삭제할 수 있습니다. 다음은 현재 작업 디렉터리를 찾는 두 가지 방법입니다.

  • Windows에서 프로세스 탐색기를 사용합니다.

    프로세스 탐색기를 열고, 프로세스를 선택하고, 속성 대화 상자를 엽니다. 이미지 파일에서 현재 디렉터리를 찾습니다.

  • 및 메서드를 GetCurrentDirectory AppContext.BaseDirectory 호출하여 현재 작업 디렉터리를 가져옵니다.

Windows의 App Service Web App에 대한 자체 진단

  1. Azure Portal에서 App Service 웹앱으로 이동합니다.

  2. 고급 도구>이동을 선택하여 Kudu 페이지로 이동합니다.

  3. Kudu 대시보드에서 디버그 콘솔>CMD를 선택합니다.

  4. App Service 웹앱이 있는 디렉터리(예: D:\home\site\wwwroot)로 이동합니다.

  5. Kudu 대시보드 맨 위에 있는 "+" 기호를 사용하여 wwwroot 폴더에 새 파일을 만들고 이름을 ApplicationInsightsDiagnostics.json.

    ApplicationInsightsDiagnostics.json 파일은 드라이브>:\home\site\wwwroot 폴더에 배치<해야 합니다. 모든 App Service Web Apps가 동일한 드라이브에 있는 것은 아닙니다. 일부는 C: 드라이브에 있을 수 있으며 일부는 D: 드라이브에 있을 수 있습니다. 찾으려면 기본 Kudu 페이지에서 사이트 폴더임시 폴더 필드를 확인합니다.

    '사이트 폴더' 및 '임시 폴더' 필드를 보여 주는 스크린샷

  6. 다음 구성 을 편집하고 ApplicationInsightsDiagnostics.json 파일에 추가합니다.

    {
        "LogDirectory": "<drive>:\home\site\wwwroot",
        "FileSize": 5120,
        "LogLevel": "Verbose"
    }
    

    참고 항목

    LogDirectory 쉽게 액세스할 수 있도록 매개 변수를 드라이브>:\home 아래<의 위치로 설정해야 하지만 액세스 권한이 충분한 경우 다른 위치가 유효합니다.

  7. 파일을 저장합니다.

    10초 후에 20220307-193542.w3wp.exe.7692.log 같은 새 로그 파일이 wwwroot 폴더에 표시됩니다.

  8. 구성 파일을 삭제하거나 이름을 ApplicationInsightsDiagnostics.bak.

    10초 후에 로깅이 중지됩니다.

Linux의 App Service Web App에 대한 자체 진단

  1. 로컬 컴퓨터에서 파일을 만들고 이름을 ApplicationInsightsDiagnostics.json.

  2. 파일을 편집하고 다음 콘텐츠를 추가합니다.

    {
        "LogDirectory": ".",
        "FileSize": 5120,
        "LogLevel": "Verbose"
    } 
    
  3. 파일을 저장합니다.

  4. Azure Portal에서 App Service 웹앱으로 이동합니다.

  5. 고급 도구>이동을 선택하여 Kudu 페이지로 이동합니다.

  6. 브라우저 세션이 시작되면 URL의 끝에 추가 /newui 합니다. 브라우저의 URL은 다음과 같습니다 https://<appname>.scm.azurewebsites.net/newui.

  7. Enter 키를 누릅니다. 새 UI가 있는 Kudu 페이지가 열립니다.

  8. 왼쪽 메뉴에서 파일 관리자를 선택합니다.

  9. 사이트 폴더를 선택한 다음, wwwroot 폴더를 선택합니다.

  10. ApplicationInsightsDiagnostics.json 파일을 wwwroot 폴더로 끌어다 놓습니다.

    10초 후에 새 로그 파일이 wwwroot 폴더에 표시됩니다(예: 20220307-193542.w3wp.exe.7692.log).

  11. 구성 파일을 삭제하거나 이름을 ApplicationInsightsDiagnostics.bak.

    10초 후에 로깅이 중지됩니다.

Application Insights Java 2.x

Application Insights Java 2.6 또는 이전 버전에 대한 진단 로그를 수집할 수 있습니다. 이렇게 하려면 프로젝트의 리소스 폴더에 있는 ApplicationInsights.xml 구성 파일의 루트 노드 아래에 요소를 추가 <SDKLogger> 합니다. 요소에서 <SDKLogger> 로거에게 파일에 출력하도록 지시할 수 있습니다.

ApplicationInsights.xml 파일의 예는 다음과 같습니다.

<SDKLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
    <Level>TRACE</Level>
    <UniquePrefix>AI</UniquePrefix>
    <BaseFolderPath>C:/agent/AISDK</BaseFolderPath>
</SDKLogger>

자세한 내용은 Java 웹 프로젝트의 Azure 애플리케이션 Insights 문제 해결을 참조하세요.

Application Insights Java 3.x

"자체 진단" 기능을 사용하여 Application Insights Java 3.x에 대한 진단 로그를 수집할 수 있습니다. 이렇게 하려면 자체 진단을 참조 하세요.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.