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
파라미터
필수 파라미터
| 파라미터 | 타입 | 설명 | 예시 |
|---|---|---|---|
startTime | string | 조회 시작 시간 (ISO 8601 형식) | "2024-01-15T00:00:00.000Z" |
endTime | string | 조회 종료 시간 (ISO 8601 형식) | "2024-01-15T23:59:59.999Z" |
선택 파라미터
| 파라미터 | 타입 | 기본값 | 설명 | 예시 |
|---|---|---|---|---|
deviceId | string | - | 특정 디바이스 ID | "device-ios-12345" |
userId | string | - | 특정 사용자 ID | "user-98765" |
platform | string | - | 플랫폼 필터 (iOS, Android) | "iOS" |
appVersion | string | - | 앱 버전 필터 | "1.2.3" |
logLevel | string[] | - | 로그 레벨 필터 | ["ERROR", "CRITICAL"] |
errorType | string | - | 에러 타입 필터 | "NetworkError" |
limit | number | 100 | 최대 결과 수 | 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%"
팁과 모범 사례
-
시간 범위 명시: 명확한 시간 범위를 제공하면 더 정확한 결과를 얻을 수 있습니다.
-
구체적인 조건: 플랫폼, 사용자 ID, 에러 타입 등을 구체적으로 명시하세요.
-
로그 레벨 활용: 원하는 정보에 따라 적절한 로그 레벨을 선택하세요.
-
결과 수 제한: 대량의 로그 조회 시 결과 수를 제한하여 성능을 향상시키세요.
-
단계별 접근: 먼저 광범위하게 조회한 후 필요에 따라 세부 조건을 추가하세요.
사용 예시 (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
}
로그 데이터 구조
각 로그 엔트리는 다음 필드를 포함합니다:
| 필드 | 타입 | 설명 |
|---|---|---|
id | string | 로그 고유 ID |
timestamp | string | 로그 생성 시각 |
deviceId | string | 디바이스 식별자 |
userId | string? | 사용자 ID (옵션) |
platform | string | 플랫폼 (iOS/Android) |
appVersion | string | 앱 버전 |
osVersion | string | OS 버전 |
logLevel | string | 로그 레벨 |
message | string | 로그 메시지 |
errorType | string? | 에러 타입 (에러인 경우) |
stackTrace | string? | 스택 트레이스 (에러인 경우) |
metadata | object | 추가 메타데이터 |
environment | string | 실행 환경 |
메타데이터 필드
| 필드 | 타입 | 설명 |
|---|---|---|
sessionId | string | 세션 식별자 |
screenName | string | 현재 화면 이름 |
actionType | string | 수행 중인 액션 타입 |
networkStatus | string | 네트워크 상태 (wifi/4G/5G) |
batteryLevel | number | 배터리 잔량 (0-100) |
memoryUsage | number | 메모리 사용률 (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
}
}
성능 고려사항
- 시간 범위: 넓은 시간 범위는 많은 데이터를 반환할 수 있으므로 적절히 제한하세요.
- limit 설정: 대량의 로그 조회 시 적절한 limit을 설정하여 응답 크기를 관리하세요.
- 필터 활용: 가능한 한 구체적인 필터를 사용하여 불필요한 데이터를 제외하세요.
문제 해결
일반적인 오류
-
빈 결과
- 시간 범위 확인
- 필터 조건 완화
- 데이터 존재 여부 확인
-
타임아웃
- 시간 범위 축소
- limit 값 감소
- 더 구체적인 필터 적용
-
잘못된 파라미터
- 시간 형식 확인 (ISO 8601)
- 플랫폼 값 확인 (iOS/Android)
- 로그 레벨 철자 확인
보안 및 프라이버시
- 민감한 사용자 정보는 마스킹 처리됩니다
- 접근 권한이 있는 데이터만 조회 가능합니다
- 로그 데이터는 보존 정책에 따라 관리됩니다
관련 도구
- query-recent-errors: 시스템 에러 조회
- analyze-error-patterns: 에러 패턴 분석
- questionnaire_data_query: 설문 데이터 조회