[swift] Swift XCGLogger를 사용하여 로깅 메시지를 어떻게 앱 내에 자동으로 저장하나요?

개발 중인 앱에 로깅 기능을 추가하는 것은 디버깅 및 문제 해결을 위해 매우 유용합니다. Swift에서 XCGLogger는 손쉽게 로그를 기록하고 저장할 수 있는 강력한 라이브러리입니다. 이 튜토리얼에서는 XCGLogger를 사용하여 로깅 메시지를 자동으로 앱 내에 저장하는 방법에 대해 알아보겠습니다.

먼저, 프로젝트에 XCGLogger를 추가해야 합니다. 이를 위해 CocoaPods를 사용하거나 수동으로 XCGLogger를 다운로드하여 프로젝트에 직접 추가할 수 있습니다.

import XCGLogger

// XCGLogger 인스턴스 생성
let log = XCGLogger.default

// 로깅 메시지를 콘솔에 출력하기 위한 설정
log.setup(level: .debug, showThreadName: true, showLevel: true, showFileNames: true, showLineNumbers: true)

// 로그 파일의 경로 설정
let logPath: URL = {
    let cachesDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)[0]
    return cachesDirectory.appendingPathComponent("logs.txt")
}()

// 파일로 로그 저장하기 위한 설정
let fileDestination = AutoRotatingFileDestination(writeToFile: logPath, identifier: "main.log")
fileDestination.targetMaxFileSize = 1024 * 1024 // 파일의 최대 크기 설정 (1MB)
fileDestination.targetMaxLogFiles = 10 // 파일의 최대 개수 설정 (10개)

// 로그 메시지를 파일로 저장하기 위한 옵션 설정
fileDestination.outputLevel = .debug
fileDestination.showLogIdentifier = false

// XCGLogger에 파일 저장 목적지 추가
log.add(destination: fileDestination)

log.debug("Debug 메시지")
log.info("Info 메시지")
log.warning("Warning 메시지")
log.error("Error 메시지")

위의 코드는 XCGLogger 라이브러리를 사용하여 로그를 설정하고 파일로 저장하는 간단한 예시입니다.

XCGLogger를 사용하여 로깅 메시지를 파일로 저장하기 위해 AutoRotatingFileDestination을 사용합니다. 로그 파일이 저장될 경로를 설정하고 파일 크기 및 파일 개수 제한을 설정할 수 있습니다. 로그 메시지의 출력 레벨도 설정할 수 있습니다.

위 코드에서는 로그 파일을 Caches 디렉토리에 “logs.txt”라는 이름으로 저장하도록 설정되어 있습니다. 로그 파일의 최대 크기는 1MB로 설정되어 있으며, 최대 10개의 로그 파일을 유지합니다.

이제 앱을 실행하여 로깅 메시지를 출력하고 파일 저장 여부를 확인할 수 있습니다.

더 많은 XCGLogger 관련 기능과 옵션을 알고 싶다면, XCGLogger GitHub 저장소를 참조하세요.