본문으로 건너뛰기

query-mobile-logs

개요​

query-mobile-logs는 모바일 애플리케이션의 로그를 조회하고 분석하는 MCP 도구입니다. iOS와 Android 플랫폼의 로그를 통합하여 검색할 수 있으며, 다양한 필터링 옵션을 제공합니다.

이 문서에서는 다음 사용 방법을 다룹니다:

  • LLM AI Chat: 자연어로 간편하게 사용하고 싶은 경우
  • JSON 형식: 구조화된 데이터로 정확한 제어가 필요한 경우

두 방법 모두 같은 결과를 제공하며, 사용자의 선호도와 상황에 따라 선택할 수 있습니다.

도구 정보​

  • 이름: query-mobile-logs
  • 설명: Query mobile app logs with various filters
  • 카테고리: 데이터 조회
  • 지원 플랫폼: iOS, Android

파라미터​

필수 파라미터​

파라미터타입설명예시
startTimestring조회 시작 시간 (ISO 8601 형식)"2024-01-15T00:00:00.000Z"
endTimestring조회 종료 시간 (ISO 8601 형식)"2024-01-15T23:59:59.999Z"

선택 파라미터​

파라미터타입기본값설명예시
deviceIdstring-특정 디바이스 ID"device-ios-12345"
userIdstring-특정 사용자 ID"user-98765"
platformstring-플랫폼 필터 (iOS, Android)"iOS"
appVersionstring-앱 버전 필터"1.2.3"
logLevelstring[]-로그 레벨 필터["ERROR", "CRITICAL"]
errorTypestring-에러 타입 필터"NetworkError"
limitnumber100최대 결과 수200

로그 레벨​

  • DEBUG: 디버깅 정보
  • INFO: 일반 정보
  • WARNING: 경고 메시지
  • ERROR: 에러 메시지
  • CRITICAL: 심각한 에러

LLM AI Chat에서의 사용법​

LLM AI Chat에서는 자연어로 모바일 로그를 조회할 수 있습니다. 다음과 같은 방식으로 사용할 수 있습니다:

기본 로그 조회​

오늘 모바일 앱 로그를 조회해주세요.

또는

2024년 1월 15일 모바일 앱 로그를 확인해주세요.

에러 로그 조회​

최근 24시간 동안 발생한 모바일 앱 에러를 조회해주세요.
iOS 앱에서 발생한 에러와 심각한 에러를 조회해주세요.
- 시작 시간: 2024-01-15 00:00
- 종료 시간: 2024-01-15 23:59

특정 사용자 문제 추적​

사용자 ID "user-12345"의 모바일 앱 로그를 조회해주세요.
- 시간: 2024-01-15 08:00부터 10:00까지
- 경고, 에러, 심각한 에러만 표시

플랫폼별 로그 분석​

Android 앱 로그를 조회해주세요.
- 어제 하루 동안
- 에러 레벨만
iOS 앱 버전 1.2.3의 로그를 확인해주세요.
- 최근 일주일 동안
- 모든 로그 레벨

네트워크 에러 분석​

NetworkError 타입의 에러를 조회해주세요.
- 2024-01-14부터 2024-01-15까지
- 최대 500개까지
네트워크 관련 문제를 분석해주세요.
- 최근 3일간의 데이터
- 에러 타입: NetworkError

크래시 분석​

앱 크래시 로그를 조회해주세요.
- 심각한 에러 레벨
- 오늘 하루 동안
특정 디바이스의 크래시를 분석해주세요.
- 디바이스 ID: device-ios-001
- 크래시 전후 10분간의 모든 로그

자연어 응답 예시​

요청: "오늘 iOS 앱에서 발생한 에러를 조회해주세요."

응답: "iOS 앱에서 발생한 에러 로그를 조회했습니다.

총 25개의 로그를 발견했습니다:

주요 에러 정보:

  • 시간: 2024-01-15T08:30:15.000Z
  • 디바이스: device-ios-001
  • 사용자: user-12345
  • 플랫폼: iOS
  • 앱 버전: 1.2.3
  • 로그 레벨: ERROR
  • 메시지: Network request failed: timeout
  • 에러 타입: NetworkError

추가 정보:

  • 세션 ID: session-abc123
  • 화면: HomeScreen
  • 네트워크 상태: 4G
  • 배터리: 85%
  • 메모리 사용률: 65%"

팁과 모범 사례​

  1. 시간 범위 명시: 명확한 시간 범위를 제공하면 더 정확한 결과를 얻을 수 있습니다.

  2. 구체적인 조건: 플랫폼, 사용자 ID, 에러 타입 등을 구체적으로 명시하세요.

  3. 로그 레벨 활용: 원하는 정보에 따라 적절한 로그 레벨을 선택하세요.

  4. 결과 수 제한: 대량의 로그 조회 시 결과 수를 제한하여 성능을 향상시키세요.

  5. 단계별 접근: 먼저 광범위하게 조회한 후 필요에 따라 세부 조건을 추가하세요.

사용 예시 (JSON 형식)​

기본 사용법​

{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-15T00:00:00.000Z",
"endTime": "2024-01-15T23:59:59.999Z"
}
}

플랫폼별 에러 조회​

{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-15T00:00:00.000Z",
"endTime": "2024-01-15T23:59:59.999Z",
"platform": "iOS",
"logLevel": ["ERROR", "CRITICAL"]
}
}

특정 사용자 문제 추적​

{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-15T08:00:00.000Z",
"endTime": "2024-01-15T10:00:00.000Z",
"userId": "user-12345",
"logLevel": ["WARNING", "ERROR", "CRITICAL"]
}
}

네트워크 에러 분석​

{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-14T00:00:00.000Z",
"endTime": "2024-01-15T00:00:00.000Z",
"errorType": "NetworkError",
"limit": 500
}
}

응답 형식​

성공 응답​

{
"content": [
{
"type": "text",
"text": "Found 25 mobile log entries:\n\n[{\n \"id\": \"log-001\",\n \"timestamp\": \"2024-01-15T08:30:15.000Z\",\n \"deviceId\": \"device-ios-001\",\n \"userId\": \"user-12345\",\n \"platform\": \"iOS\",\n \"appVersion\": \"1.2.3\",\n \"osVersion\": \"16.4\",\n \"logLevel\": \"ERROR\",\n \"message\": \"Network request failed: timeout\",\n \"errorType\": \"NetworkError\",\n \"stackTrace\": \"Error: Network timeout\\n at NetworkManager.request (NetworkManager.swift:45)\",\n \"metadata\": {\n \"sessionId\": \"session-abc123\",\n \"screenName\": \"HomeScreen\",\n \"actionType\": \"api_call\",\n \"networkStatus\": \"4G\",\n \"batteryLevel\": 85,\n \"memoryUsage\": 65\n },\n \"environment\": \"production\"\n}]"
}
],
"isError": false
}

에러 응답​

{
"content": [
{
"type": "text",
"text": "Error querying mobile logs: Invalid time range - start time must be before end time"
}
],
"isError": true
}

로그 데이터 구조​

각 로그 엔트리는 다음 필드를 포함합니다:

필드타입설명
idstring로그 고유 ID
timestampstring로그 생성 시각
deviceIdstring디바이스 식별자
userIdstring?사용자 ID (옵션)
platformstring플랫폼 (iOS/Android)
appVersionstring앱 버전
osVersionstringOS 버전
logLevelstring로그 레벨
messagestring로그 메시지
errorTypestring?에러 타입 (에러인 경우)
stackTracestring?스택 트레이스 (에러인 경우)
metadataobject추가 메타데이터
environmentstring실행 환경

메타데이터 필드​

필드타입설명
sessionIdstring세션 식별자
screenNamestring현재 화면 이름
actionTypestring수행 중인 액션 타입
networkStatusstring네트워크 상태 (wifi/4G/5G)
batteryLevelnumber배터리 잔량 (0-100)
memoryUsagenumber메모리 사용률 (0-100)

사용 시나리오​

시나리오 1: 앱 크래시 분석​

LLM AI Chat:

1. iOS 앱에서 발생한 크래시 로그를 조회해주세요.
- 시간: 2024-01-15 오전 0시부터 12시까지
- 심각한 에러만

2. 크래시가 발생한 디바이스의 전후 상황을 확인해주세요.
- 디바이스: device-ios-crashed
- 시간: 2024-01-15 08:25부터 08:35까지
- 모든 레벨의 로그

JSON 형식:

// 1. 크래시 로그 조회
{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-15T00:00:00.000Z",
"endTime": "2024-01-15T12:00:00.000Z",
"logLevel": ["CRITICAL"],
"platform": "iOS"
}
}

// 2. 크래시 전후 컨텍스트 확인
{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-15T08:25:00.000Z",
"endTime": "2024-01-15T08:35:00.000Z",
"deviceId": "device-ios-crashed",
"logLevel": ["INFO", "WARNING", "ERROR", "CRITICAL"]
}
}

시나리오 2: 버전별 안정성 비교​

LLM AI Chat:

앱 버전별 안정성을 비교해주세요.

1. 버전 1.2.3의 에러 로그를 조회해주세요.
- 기간: 2024-01-01부터 2024-01-07까지
- 에러와 심각한 에러만

2. 버전 1.2.4의 에러 로그를 조회해주세요.
- 기간: 2024-01-08부터 2024-01-14까지
- 에러와 심각한 에러만

JSON 형식:

// 버전 1.2.3 로그
{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-01T00:00:00.000Z",
"endTime": "2024-01-07T23:59:59.999Z",
"appVersion": "1.2.3",
"logLevel": ["ERROR", "CRITICAL"]
}
}

// 버전 1.2.4 로그
{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-08T00:00:00.000Z",
"endTime": "2024-01-14T23:59:59.999Z",
"appVersion": "1.2.4",
"logLevel": ["ERROR", "CRITICAL"]
}
}

시나리오 3: 성능 문제 진단​

LLM AI Chat:

성능 문제를 진단하기 위해 경고 레벨의 로그를 분석해주세요.
- 시간: 2024-01-15 09:00부터 10:00까지
- 경고 레벨만
- 최대 1000개까지

JSON 형식:

{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-15T09:00:00.000Z",
"endTime": "2024-01-15T10:00:00.000Z",
"logLevel": ["WARNING"],
"limit": 1000
}
}

시나리오 4: 특정 사용자 문제 해결​

LLM AI Chat:

사용자 ID "user-problematic"의 문제를 추적해주세요.
- 최근 24시간 동안의 로그
- 모든 로그 레벨 포함
- 어떤 문제가 발생했는지 패턴 분석

JSON 형식:

{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-14T00:00:00.000Z",
"endTime": "2024-01-15T00:00:00.000Z",
"userId": "user-problematic",
"logLevel": ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
}
}

시나리오 5: 네트워크 문제 분석​

LLM AI Chat:

네트워크 관련 문제를 종합적으로 분석해주세요.
- 최근 일주일 동안의 데이터
- NetworkError 타입의 에러
- 플랫폼별 분포도 확인

JSON 형식:

{
"tool": "query-mobile-logs",
"arguments": {
"startTime": "2024-01-08T00:00:00.000Z",
"endTime": "2024-01-15T00:00:00.000Z",
"errorType": "NetworkError",
"limit": 500
}
}

성능 고려사항​

  1. 시간 범위: 넓은 시간 범위는 많은 데이터를 반환할 수 있으므로 적절히 제한하세요.
  2. limit 설정: 대량의 로그 조회 시 적절한 limit을 설정하여 응답 크기를 관리하세요.
  3. 필터 활용: 가능한 한 구체적인 필터를 사용하여 불필요한 데이터를 제외하세요.

문제 해결​

일반적인 오류​

  1. 빈 결과

    • 시간 범위 확인
    • 필터 조건 완화
    • 데이터 존재 여부 확인
  2. 타임아웃

    • 시간 범위 축소
    • limit 값 감소
    • 더 구체적인 필터 적용
  3. 잘못된 파라미터

    • 시간 형식 확인 (ISO 8601)
    • 플랫폼 값 확인 (iOS/Android)
    • 로그 레벨 철자 확인

보안 및 프라이버시​

  • 민감한 사용자 정보는 마스킹 처리됩니다
  • 접근 권한이 있는 데이터만 조회 가능합니다
  • 로그 데이터는 보존 정책에 따라 관리됩니다

관련 도구​

  • query-recent-errors: 시스템 에러 조회
  • analyze-error-patterns: 에러 패턴 분석
  • questionnaire_data_query: 설문 데이터 조회

관련 문서​