🍁

Swift: デバッグ時だけprintする便利なやつ

2020/12/16に公開
  • デバッグ時だけ標準出力をしてリリース時には何も起きない
  • ファイル名や行番号、関数名なども一緒に出力してくれる
  • 複数の値を渡してもきれいに出力される

こんな便利関数が欲しかったので自作していて、プロジェクトを作ったらまずこれを突っ込んでいる。

func logput(_ items: Any...,
            file: String = #file,
            line: Int = #line,
            function: String = #function) {
    #if DEBUG
    let fileName = URL(fileURLWithPath: file).lastPathComponent
    var array: [Any] = ["💫Log: \(fileName)", "Line:\(line)", function]
    array.append(contentsOf: items)
    Swift.print(array)
    #endif
}

logput("hello", "world", 3.14)
出力例
["💫Log: AppDelegate.swift", "Line:42", "applicationDidFinishLaunching(_:)", "hello", "world", 3.14]

Discussion