[swift] Swift XCGLogger를 사용하여 로깅 메시지를 어떻게 개별적인 파일로 저장하고 인쇄하나요?

로깅은 소프트웨어 개발에서 중요한 요소 중 하나입니다. XCGLogger는 Swift에서 강력하고 유연한 로깅 도구입니다. 이 툴을 사용하여 로깅 메시지를 개별 파일로 저장하고 인쇄하는 방법을 알아보겠습니다.

XCGLogger 설치

XCGLogger는 Swift 패키지 매니저인 CocoaPods를 통해 설치할 수 있습니다. 프로젝트의 Podfile에 다음 라인을 추가하고 pod install 명령어로 설치합니다.

pod 'XCGLogger'

XCGLogger 설정

XCGLogger를 사용하기 위해 먼저 다음과 같이 XCGLogger를 가져옵니다.

import XCGLogger

그런 다음 적절한 위치에 다음 코드를 추가하여 로거를 설정합니다.

let log = XCGLogger.default
log.setup(level: .debug)

// Optional: 로깅 포맷 설정
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
log.formatters = [XCGLogger.Formatter("[%@] - %@",
                                      arguments: [XCGLogger.Formatter.Context.date(dateFormatter),
                                                  XCGLogger.Formatter.Context.message])]

위 코드에서는 로깅 레벨을 debug로 설정하고 로깅 메시지에 날짜 및 시간을 추가하는 로거를 설정하였습니다.

로깅 메시지 저장

이제 XCGLogger를 사용하여 로깅 메시지를 개별 파일로 저장해보겠습니다. 먼저 로깅 메시지를 저장할 디렉토리 경로를 정의해야 합니다.

let logDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("Logs")

로깅 메시지를 개별 파일로 저장하기 위해 XCGLogger의 fileLogDestination을 설정해줍니다.

let fileDestination = log.add(destination: XCGFileLogDestination(owner: log, writeToFile: logDirectory.appendingPathComponent("log.txt"),
                                                                             identifier: XCGLogger.Constants.fileDestinationIdentifier))

writeToFile 매개변수에는 로깅 메시지를 저장할 파일 경로를 지정합니다.

로깅 메시지 출력

이제 로깅 메시지를 개별 파일에 저장하고 인쇄하는 방법을 알았습니다.

log.debug("디버그 로그 메시지")
log.info("정보 로그 메시지")
log.warning("경고 로그 메시지")
log.error("에러 로그 메시지")

위와 같이 로깅 메시지를 호출하면, 파일에는 해당 로깅 메시지가 저장되고, 콘솔에는 다음과 같이 출력됩니다.

[2021-09-30 18:30:00] - 디버그 로그 메시지
[2021-09-30 18:30:01] - 정보 로그 메시지
[2021-09-30 18:30:02] - 경고 로그 메시지
[2021-09-30 18:30:03] - 에러 로그 메시지

참고 자료

이제 XCGLogger를 사용하여 로깅 메시지를 개별 파일로 저장하고 인쇄할 수 있습니다. XCGLogger가 로깅을 진행하는 동안 로깅을 관리하고 로그 파일을 쉽게 확인할 수 있도록 도움을 줄 것입니다.