[Swift] Logging 라이브러리를 간단하게 비교해봤어요.

12033 단어 SwiftiOS

개시하다


Swift의 Logging 라이브러리를 프로젝트에 가져오기 위해 간단한 조사를 했습니다.
이번 조사의 3개 라이브러리의 개요를 간신히 총결하였다.

CocoaLumberjack


Objective-C 시대부터 유행했던 프로그램 라이브러리라 온라인에는 즐거운 정보가 많다.
MIT 라이센스가 아닙니다.
• 콘솔 출력
// Xcodeのコンソールに出力
DDLog.add(DDTTYLogger.sharedInstance)
// ログレベルに応じた出力
DDLogDebug("Debug")
DDLogInfo("Info")
/파일 출력 설정
// ログファイルのパス指定
let manager: DDLogFileManagerDefault = DDLogFileManagerDefault(logsDirectory: "/path/to/file")
// ファイルロガークラス
et fileLogger: DDFileLogger = DDFileLogger(logFileManager: manager)
// 出力周期(24h)
fileLogger.rollingFrequency = TimeInterval(60 * 60 * 24)
// 最大ファイルサイズ(10MB)
fileLogger.maximumFileSize = 10 * 1024 * 1024
// 最大ファイル数(7ファイル)
fileLogger.logFileManager.maximumNumberOfLogFiles = 7
// 追加
DDLog.add(fileLogger)
· 사용자 정의 클래스에서 로그 단계에 따라 파일 출력 목표를 변경합니다
class WarningLogFormatter: NSObject, DDLogFormatter {
    func format(message logMessage: DDLogMessage) -> String? {
        // ログレベルがWarningの時のみ出力
        if logMessage.level == .warning {
            return logMessage.message
        } else {
            return nil
        }
    }
}

fileLogger.logFormatter = WarningLogFormatter()
사용자 정의 레벨을 제작함으로써 많은 사용자 정의를 할 수 있습니다.

XCGLogger


Swift 쓰기도 좋고, 코콜럼버잭이 할 수 있는 일은 대충 기억할 수 있다.
• 콘솔 출력
// ログ定義
let log = XCGLogger.default
// セットアップ
log.setup(level: .verbose,// 出力するログレベル
    showThreadName: true,// スレッド名表示フラグ
    showLevel: true,// レベル表示フラグ
    showFileNames: true,// ファイル名表示フラグ
    showLineNumbers: true,// 行番号表示フラグ
    showDate: true,// 日付表示フラグ
    writeToFile: "path/to/file",// ログファイルパス
    fileLevel: .debug)// ファイル出力のログレベル
// ログレベルに応じた出力
log.debug("Debug")
log.info("Info")
· 준비된 Destination Protocol을 계승한 반을 이용하여 맞춤형 제작
let fileDestination = FileDestination(writeToFile: "/path/to/file", identifier: "advancedLogger.fileDestination")
// 詳細設定
fileDestination.outputLevel = .debug
fileDestination.showLogIdentifier = false
fileDestination.showFunctionName = true
fileDestination.showThreadName = true
fileDestination.showLevel = true
fileDestination.showFileName = true
fileDestination.showLineNumber = true
fileDestination.showDate = true
// 設定追加
log.add(destination: fileDestination)
위의 파일 출력 사용자 정의FileDesitination를 제외하고는
사용자 정의 시스템 로그AppleSystemLogDestination,
콘솔 로그 사용자 정의ConsoleDestination,
테스트를 위한 맞춤형TestDestination네.

SwiftBeaver


참고가 매우 상세하다.( https://docs.swiftybeaver.com/collection/1-framework )
플랫폼의 Mac 응용 프로그램이 있기 때문에 사용자 로그를 간단하게 수집할 수 있습니다.
사용자 로그 수집은 다른 프로그램 라이브러리와 다릅니다.
• 콘솔/파일 출력
// ログ定義
let log = SwiftyBeaver.self
// コンソール出力設定
let console = ConsoleDestination()
console.format = "$DHH:mm:ss$d $L $M"
// ファイル出力設定
let file = FileDestination()
file.logFileURL = URL(fileURLWithPath: "/path/to/file")
// プラットフォーム設定
let cloud = SBPlatformDestination(appID: "foo", appSecret: "bar", encryptionKey: "123")
// 設定追加
log.addDestination(console)
log.addDestination(file)
log.addDestination(cloud)
// ログレベルに応じた出力
log.debug("Debug")
log.info("Info")
• 플랫폼용 Mac 애플리케이션
1. 공식 홈페이지https://swiftybeaver.com에서 다운로드
2. 앱 시작, 로그인
3. ID/applet/encryptionKey를 SBPlastiform Destination에 적용한 init 매개변수 복사
4. 로그 출력 후 Mac 애플리케이션을 통해 확인할 수 있습니다!

로그 수준/UDID/터미널/OS 버전/어플리케이션 버전 등을 필터링할 수도 있습니다.
무료/유료 계획이 있습니다.

감상


기술 편의성과 사용자 정의를 고려하여 기본적으로 XCGLogger를 선택할 수 있습니다.
SwiftBeaver에서 필요에 따라 플랫폼을 가져올 수 있습니다.

좋은 웹페이지 즐겨찾기