14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

delba/Log で Swift.print() と同じ感覚で Log 出力する

Last updated at Posted at 2016-05-31

DaveWoodCom/XCGLogger

XCGLogger はとても便利なのだが、 log 出力する内容を string で渡さないといけないのを不満に思っていた。

var text = "log"
log.debug("\(text)")  // こんな感じで string にして渡さないといけない

そうではなくて、 Swift.print(text) みたいに変数とかオブジェクトそのまま渡して出力してくれる Log ライブラリを探してたら見つけたので紹介。

delba/Log: An extensible logging framework for Swift

半年くらい前に出てきたライブラリ。
Log という名前なのでググラビリティが低い...

Use Log just as you would use print. とある通りの使い勝手でいける。

Usage

中で出てくる #if DEBUG が何かとか、 logOptional になってる理由は XCGLogger で DEBUG の時だけ log を出す - Qiita を参考にして欲しい。

AppDelegate.swift

import Log

let log: Logger? = {
  #if DEBUG
    let Log = Logger(formatter: .Detailed, theme: .TomorrowNight)
    return Log
  #else
    return nil
  #endif
}()

ViewController.swift


  override func viewDidLoad() {
    super.viewDidLoad()
    let one = 1
    let warning = "warning!!!!!!"
    let error = "error!!!!!!"
    log?.trace("Called!!!")
    log?.debug("Who is self:", self)
    log?.info(one)
    log?.warning(warning, separator: " - ")
    log?.error(error, terminator: "😱😱😱\n")
  }

結果

String だろうと変数であろうと、 Swift.print() の感覚でログ出力できてめでたい :congratulations:

スクリーンショット 2016-05-31 13.14.17.png

14
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?