Swift Logger

Literal Expressionを使って情報を付け足し出力する。

struct Logger {
    static func debug(_ item: Any, file: String = #file, line: Int = #line, function: String = #function) {
        #if DEBUG
        let components = [
            "💚Debug💚 \(Date())",
            "file: \(file)",
            "line: \(line)",
            "function: \(function)",
            "\(item)"
        ]
        print(components.joined(separator: "\n"))
        #endif
    }
}
Logger.debug("debug string")
💚Debug💚 2019-10-24 11:22:52 +0000
file: /ViewController.swift
line: 7
function: viewDidLoad()
debug string

Consoleに色をつけて出力する

xcode8からcolorをサポートされなくなったとなっている。 絵文字💚で色の代用はできるが、本当にできないのだろうか。

Logクラスの設計

メソッド 優先度
trace
debug
info
warn
error

ログ設計指針 - Qiita

ログの出力先

  • console
  • file
  • remote