[swift] SwiftyBeaver 로깅 라이브러리의 설정과 커스텀화

SwiftyBeaver는 Swift로 작성된 간편하고 강력한 로깅 라이브러리입니다. 로그를 기록하고 실시간으로 표시하는 기능을 제공하여 애플리케이션 개발 프로세스를 간소화하는 데 도움을 줍니다. 이번 포스트에서는 SwiftyBeaver의 설정 및 커스텀화하는 방법에 대해 알아보겠습니다.

설정

SwiftyBeaver를 사용하기 위해서는 초기 설정을 해야 합니다. 설정은 앱의 AppDelegate.swift 파일에서 다음과 같이 수행할 수 있습니다.

import SwiftyBeaver

let log = SwiftyBeaver.self

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    let console = ConsoleDestination() // 로그를 콘솔에 표시하는 대상 설정
    log.addDestination(console) // 대상 추가

    // 추가 설정
    console.ignoreVerboseMessages = true

    return true
}

위의 코드에서는 ConsoleDestination을 사용하여 로그를 콘솔에 표시하는 대상을 설정하고 ignoreVerboseMessages를 true로 설정하여 상세 로그를 무시합니다. 필요에 따라 다른 대상도 추가할 수 있습니다.

커스텀 대상 추가

SwiftyBeaver는 여러 가지 대상을 지원하며, 필요에 따라 커스텀 대상도 추가할 수 있습니다. 예를 들어, 파일에 로그를 기록하고 싶다면 다음과 같이 커스텀 대상을 만들 수 있습니다.

import SwiftyBeaver

class FileDestination: BaseDestination {
    override init() {
        super.init()
        // 초기화 로직
    }

    override func send(_ level: SwiftyBeaver.Level, message: String, thread: String, file: String, function: String, line: Int) -> String? {
        // 로그를 파일에 기록하는 로직
        return nil
    }
}

위의 코드에서는 BaseDestination을 상속하여 커스텀 대상을 생성하고, send 메서드를 재정의하여 로그를 파일에 기록하는 동작을 구현합니다.

커스텀 대상을 사용하려면 이를 SwiftyBeaver에 추가해야 합니다. 다음과 같이 AppDelegate.swift에서 수행할 수 있습니다.

import SwiftyBeaver

let log = SwiftyBeaver.self

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    let console = ConsoleDestination()
    let file = FileDestination() // 파일 대상 추가
    log.addDestinations([console, file])

    return true
}

위의 코드에서는 콘솔과 파일을 모두 대상에 추가하여 로그를 동시에 로깅하도록 설정하였습니다.

마무리

SwiftyBeaver는 강력하고 개발자 친화적인 로깅 라이브러리로 앱의 로그 관리를 간편하게 해줍니다. 설정과 커스텀 대상 추가를 통해 SwiftyBeaver를 최대한 활용할 수 있습니다. SwiftyBeaver의 공식 문서에서 더 자세한 사용법을 확인할 수 있습니다.