[swift] 스위프트 아폴로에서의 디버깅 및 로깅 방법

아폴로(Apollo)는 스위프트에서 사용할 수 있는 강력한 그래프 큐엘(GraphQL) 클라이언트 라이브러리입니다. 디버깅과 로깅은 애플리케이션 개발 과정에서 매우 중요한 부분입니다. 이번 포스트에서는 스위프트 아폴로에서 디버깅과 로깅을 수행하는 방법에 대해 알아보겠습니다.

디버깅

1. Alamofire 로깅 활성화

스위프트 아폴로는 내부적으로 Alamofire를 사용합니다. Alamofire는 로깅을 위한 Debug 클래스를 제공하고 있습니다. 디버깅을 위해서는 다음 코드를 앱 시작 시점에 호출해야 합니다.

import Alamofire
import Apollo

Debug.requestLogging = .verbose

이렇게 하면 Alamofire가 보낸 HTTP 요청 및 받은 응답에 대한 로그가 출력됩니다. 로깅 레벨을 조정하여 원하는 정보만 로깅할 수도 있습니다.

2. 스위프트 아폴로 내부 로깅 활성화

스위프트 아폴로는 내부적으로 로깅을 수행합니다. 로깅을 활성화하려면 다음 코드를 앱 시작 시점에 호출해야 합니다.

ApolloStore.logLevel = .verbose

이렇게 하면 아폴로에서 수행되는 모든 작업에 대한 로그가 출력됩니다. 로깅 레벨을 조정하여 원하는 정보만 로깅할 수도 있습니다.

로깅

1. 콘솔 로깅

가장 간단한 로깅 방법은 콘솔에 로그를 출력하는 것입니다. 스위프트에서는 print 함수를 사용하여 로그를 출력할 수 있습니다.

print("Hello, World!")

2. 파일 로깅

로그를 파일에 기록하여 나중에 분석하거나 공유할 수도 있습니다. 스위프트에서는 FileManager 클래스를 사용하여 파일에 로그를 기록할 수 있습니다.

let fileName = "log.txt"
let logText = "Hello, World!"

let fileManager = FileManager.default
let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsURL.appendingPathComponent(fileName)

do {
    try logText.write(to: fileURL, atomically: true, encoding: .utf8)
} catch {
    print("Error writing log to file: \(error)")
}

위의 코드에서는 "log.txt"라는 파일에 "Hello, World!"라는 로그를 기록하고 있습니다. 기록된 로그는 앱의 문서 디렉토리에 저장됩니다.

결론

이번 포스트에서는 스위프트 아폴로에서 디버깅과 로깅을 수행하는 방법에 대해 알아보았습니다. Alamofire와 아폴로 내부 로깅을 활성화하여 디버깅 정보를 확인하고, 콘솔이나 파일에 로그를 출력하면서 애플리케이션 개발에 도움을 줄 수 있습니다.

더 자세한 내용은 아폴로 및 Alamofire의 공식 문서를 참조하시기 바랍니다.

Happy coding!