[swift] Swift XCGLogger를 사용하여 로그 메시지를 어떻게 색상 처리하나요?

Swift의 XCGLogger는 많은 유용한 로깅 기능을 제공하는 강력한 도구입니다. 이를 통해 앱의 로그 메시지를 커스터마이즈하고, 색상 처리하는 것도 가능합니다. 아래는 XCGLogger를 사용하여 로그 메시지를 색상 처리하는 방법에 대한 예시입니다.

1. XCGLogger 설치하기

먼저, CocoaPods 또는 Carthage를 사용하여 XCGLogger를 프로젝트에 설치합니다.

2. 로그 색상 처리하기

XCGLogger에서 로그 메시지의 색상을 처리하기 위해 LogFormatter를 사용합니다. 아래는 로그 메시지를 레벨에 따라 다른 색상으로 처리하는 간단한 예시입니다.

import XCGLogger

// 로그 포매터 클래스 선언
class ColoredLogFormatter: LogFormatterProtocol {
    // 로그 메시지 포맷 설정 (여기에서는 시간 + 로그 메시지)
    let logFormat = "$DHH:mm:ss$d $L $M"

    // 로그 메시지에 대한 색상 설정
    func color(for level: XCGLogger.Level, message: String, context: LogContext) -> XCGLogger.XcodeColors {
        switch level {
        case .verbose:
            return .lightGrey
        case .debug:
            return .yellow
        case .info:
            return .green
        case .warning:
            return .orange
        case .error, .severe:
            return .red
        default:
            return .lightGrey
        }
    }
}

// XCGLogger 객체 생성
let logger = XCGLogger.default

// 로그 포매터 설정
let formatter = ColoredLogFormatter()
logger.formatters = [formatter]

// 로그 레벨 설정 (옵션)
logger.logLevel = .info

// 로그 출력
logger.verbose("This is a verbose message")  // 회색으로 출력
logger.debug("This is a debug message")      // 노란색으로 출력
logger.info("This is an info message")       // 초록색으로 출력
logger.warning("This is a warning message")  // 주황색으로 출력
logger.error("This is an error message")     // 빨간색으로 출력

위의 코드에서는 ColoredLogFormatter라는 사용자 정의 로그 포맷터를 구현하여 각 로그 메시지에 대한 색상을 정의하고 있습니다. color(for: message: context:) 메서드에서는 XCGLogger.Level을 기반으로 로그 메시지에 대한 적절한 색상을 반환합니다.

덧붙여, XCGLogger를 사용하면 로그 메시지를 파일로 저장하거나 네트워크를 통해 전송하는 등 다양한 방식으로 처리할 수도 있습니다. 자세한 내용은 XCGLogger GitHub 페이지를 참고하시기 바랍니다.