[swift] SwiftyBeaver 로깅 라이브러리의 기능 확장 및 커스터마이징 방법

SwiftyBeaver는 Swift를 위한 강력하고 유연한 로깅 라이브러리입니다. 이 라이브러리를 사용하면 애플리케이션의 로그를 쉽고 효율적으로 기록하고 관리할 수 있습니다. 이번에는 SwiftyBeaver의 기능을 확장하고 커스터마이징하는 방법에 대해 알아보겠습니다.

SwiftyBeaver 확장하기

SwiftyBeaver를 확장하는 방법은 다양하지만, 가장 일반적인 방법은 로그 레벨을 추가하는 것입니다. 기본적으로 SwiftyBeaver에는 Debug, Info, Warning, Error와 같은 로그 레벨이 있습니다. 하지만 프로젝트에 따라 특정한 로그 레벨이 필요할 수 있습니다.

아래는 SwiftyBeaver에 Custom 로그 레벨을 추가하는 예제입니다.

import SwiftyBeaver

let customLogLevel = SwiftyBeaver.Level(rawValue: LogManager.nextAvailableLevel.rawValue + 1)

extension SwiftyBeaver.Level {
    static let custom = customLogLevel
}

let logger = SwiftyBeaver.self
logger.addDestination(ConsoleDestination())
logger.minLevel = .custom

위의 코드에서는 custom이라는 이름의 Custom 로그 레벨을 추가하였습니다. 이제 loggerminLevel.custom으로 설정하면, 해당 로그 레벨 이상의 로그만 기록됩니다.

SwiftyBeaver 커스터마이징하기

SwiftyBeaver를 커스터마이징하는 방법에는 여러 가지가 있습니다. 대표적인 예로 로그 포맷 변경과 로그 색상 변경이 있습니다.

로그 포맷 변경

SwiftyBeaver의 로그 포맷은 기본적으로 “[날짜] [시간] [로깅 레벨] [메시지]” 형태입니다. 이를 커스터마이징하기 위해서는 ConsoleFormat 객체를 사용합니다.

아래는 로그 포맷을 변경하는 예제입니다.

import SwiftyBeaver

let format = "$DHH:mm:ss$d $L $M"
let consoleFormat = ConsoleFormat(format: format)
let consoleDestination = ConsoleDestination()
consoleDestination.format = consoleFormat

let logger = SwiftyBeaver.self
logger.addDestination(consoleDestination)

위의 코드에서는 format 변수에 원하는 로그 포맷을 작성합니다. $DHH:mm:ss$d는 날짜 및 시간을 표시하고, $L은 로깅 레벨을 표시하며, $M은 메시지를 표시합니다.

로그 색상 변경

SwiftyBeaver를 사용하면 로그 색상을 변경할 수도 있습니다. 로그 색상을 변경하기 위해서는 ConsoleColor 객체를 사용합니다.

아래는 로그 색상을 변경하는 예제입니다.

import SwiftyBeaver

let consoleDestination = ConsoleDestination()
consoleDestination.colored = true
consoleDestination.levelColor.verbose = ConsoleColor.grey
consoleDestination.levelColor.debug = ConsoleColor.cyan
consoleDestination.levelColor.info = ConsoleColor.green
consoleDestination.levelColor.warning = ConsoleColor.yellow
consoleDestination.levelColor.error = ConsoleColor.red

let logger = SwiftyBeaver.self
logger.addDestination(consoleDestination)

위의 코드에서는 colored 속성을 true로 설정하여 로그에 색상을 적용합니다. 그리고 로그 레벨에 따라 적용할 색상을 지정합니다.

결론

SwiftyBeaver를 사용하면 로그 기록 및 관리를 쉽게 할 수 있습니다. 이 글에서는 SwiftyBeaver의 기능을 확장하고 커스터마이징하는 방법을 알아보았습니다. SwiftyBeaver의 다양한 기능을 활용하여 애플리케이션의 로그를 효과적으로 관리할 수 있습니다.

참고 자료: