> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ones1ght.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 로그 사용법

> SDK 개발시 로그 확인 방법을 안내합니다.

## iOS

<Tabs>
  <Tab title="Xcode 로 로컬 빌드가 가능한 경우">
    <Steps>
      <Step title="로그 콜백 등록">
        SDK 초기화 시 로그 콜백이 붙어 있는지 확인합니다.

        ```swift theme={null}
        OneS1ght.onDebugLog = { level, line in print("[OneS1ght][\(level)] \(line)") }
        ```

        <Warning>
          `initialize` **보다 먼저** 등록해야 초기화 단계의 로그가 남습니다.
        </Warning>

        등급으로 걸러낼 수 있습니다. `LogLevel` 은 `Comparable` 입니다.

        ```swift theme={null}
        OneS1ght.onDebugLog = { level, line in
            guard level >= .warn else { return }      // 확인이 필요한 것만
            print("[OneS1ght][\(level)] \(line)")
        }
        ```

        <Note>
          `0.1.12` 이전에는 글자만 왔습니다 — `{ line in ... }`.
          [마이그레이션 가이드](/sdk/integration/ios/migration-guide) 참고.
        </Note>
      </Step>

      <Step title="디바이스 연결">
        iOS 기기를 Mac 에 연결합니다.
      </Step>

      <Step title="앱 빌드 및 실행">
        Xcode 에서 앱을 빌드하여 연결된 기기에 설치 및 실행합니다.
      </Step>

      <Step title="콘솔 필터 설정">
        Xcode 하단의 **Console** 탭을 엽니다.
        우측 하단의 필터 입력란에 `OneS1ght` 를 입력하여 OneS1ght 로그만 표시되도록 설정합니다.
      </Step>

      <Step title="이슈 재현">
        문제가 발생하는 상황을 재현합니다.
      </Step>

      <Step title="로그 저장">
        약 **30초** 동안 앱을 활성화 상태로 유지합니다.
        Console 의 모든 로그를 선택 후 복사하고, 텍스트 에디터에 붙여넣어 파일로 저장합니다.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Console 앱을 사용하는 경우">
    iOS 기기에서 직접 Xcode 로 빌드할 수 없는 경우, Mac 의 **Console** 앱으로 로그를 수집할 수 있습니다.

    <Steps>
      <Step title="디바이스 연결">
        iOS 기기를 Mac 에 연결합니다.
      </Step>

      <Step title="Console 앱 열기">
        Spotlight 검색(`Cmd + Space`)에서 "Console" 을 검색하여 앱을 실행합니다.
      </Step>

      <Step title="로그 스트림 시작">
        Console 앱 좌측 사이드바의 장치 목록에서 연결된 iOS 기기를 선택합니다.
        상단의 검색/필터 입력란에 **앱의 번들 ID** 를 입력하여 필터링합니다.
      </Step>

      <Step title="로그 초기화">
        이전 로그를 제거하기 위해 Console 창을 우클릭하여 **Clear Console** 을 선택합니다.
      </Step>

      <Step title="이슈 재현">
        문제가 발생하는 상황을 재현합니다.
      </Step>

      <Step title="로그 저장">
        약 **30초** 동안 앱을 활성화 상태로 유지합니다.
        표시된 모든 로그를 선택 후 복사하고, 텍스트 에디터에 붙여넣어 파일로 저장합니다.
      </Step>
    </Steps>

    <Warning>
      Console 앱은 `print` 로 찍은 줄을 잡지 못할 수 있습니다. 기기에서만 재현되는 문제를 볼 때는
      `onDebugLog` 안에서 `os.Logger` 로도 남겨 두면 확실합니다.

      ```swift theme={null}
      import os
      let log = Logger(subsystem: "com.yourcompany.yourapp", category: "OneS1ght")
      OneS1ght.onDebugLog = { level, line in
          switch level {
          case .error: log.error("\(line, privacy: .public)")
          case .warn:  log.warning("\(line, privacy: .public)")
          default:     log.info("\(line, privacy: .public)")
          }
      }
      ```

      Console 앱 필터에는 subsystem(`com.yourcompany.yourapp`)을 넣으세요.
    </Warning>
  </Tab>
</Tabs>

### 로그 등급

| 등급       | 뜻                                        |
| -------- | ---------------------------------------- |
| `.log`   | 흐름 기록 — 평상시엔 안 봐도 됩니다                    |
| `.info`  | 알아두면 좋은 것 — 정상이지만 눈에 띄면 도움이 됩니다          |
| `.warn`  | 확인이 필요한 것 — 고장은 아니지만 이대로면 기대한 대로 안 돌아갑니다 |
| `.error` | 고장 — 손대지 않으면 그 기능이 동작하지 않습니다             |

문제를 신고하실 때는 **등급으로 거르지 말고 전부** 보내주세요 — 고장 직전의 흐름이
원인을 가리키는 경우가 많습니다.

## Android

**준비 중입니다.**
