LoginSignup
48
48

More than 5 years have passed since last update.

Swiftのログプラットフォーム、SwiftyBeaverのセットアップ方法

Last updated at Posted at 2016-07-19

SwiftyBeaverは、Swiftのためのログプラットフォームです。
今までプライベートベータだったのが、パブリックオープンしたようなので早速触ってみました。

SwiftyBeaverとは

SwiftyBeaverは、開発段階からリリース後まで一貫してログを参照することができるようにするものです。

iOSクライアントからSwiftyBeaverプラットフォームにログをアップして、アップされたログを専用のMacアプリで見ることができます。(他にもログのXcodeのコンソールやファイルへの出力もあります。)また、SwiftyBeaverにアップされるログは全て暗号化され送信されます。この暗号化による安全性のおかげで、規約がたくさんありそうな医療機関や大きな企業でも実際にプロダクションで導入されているようです。

Seb Kreutzbergerさんという、Wunderlistの元CEO/CTOの方が作っています。

beaver.png

セットアップ方法

iOSアプリへの導入はかなり簡単です。Carthage、CocoaPods、Swift Package Managerでの導入がサポートされています。今回は、CocoaPodsで使ってみました。

Podfile
pod 'SwiftyBeaver'
AppDelegate.swift
let log = SwiftyBeaver.self

let console = ConsoleDestination()
let file = FileDestination()
file.logFileURL = NSURL(string: "file:///tmp/swiftybeaver.log")!
let platform = SBPlatformDestination(
    appID: "hogehoge",
    appSecret: "hogehoge",
    encryptionKey: "hogehoge")

log.addDestination(console)
log.addDestination(file)
log.addDestination(platform)

これだけでまずは使うことができます *\(^o^)/*
AppDelegateあたりで、SwiftyBeaverの参照を持たせて、アプリの各所で log を使いまわします。

ログ

上記でセットアップしたようにログの確認方法が3つ(Xcode, ファイル, Macアプリ)用意されています。また、ログレベルとして、verbosedebuginfowarningerror の5つがあります。

ViewController.swift
log.verbose("verbose")
log.debug("debug")
log.info("info")
log.warning("warning")
log.error("error")

このコードがどのようにそれぞれの確認方法で出力されるのか見ていきたいと思います。

Xcodeコンソールへの出力

この方法は、従来のXcode上でのログ確認とほぼ同じです。
ドキュメント内には、ログに色を付けるプラグインやログの内容から該当ファイルへリンクを張るプラグインも紹介されています。

Screen Shot 2016-07-19 at 11.32.57 PM.png

ファイル

ログをファイルに書き出すこともできます。
上記のAppDelegateのコードでは、macOS用アプリ開発に限り、 tmpディレクトリにswiftybeaver.logという名前でログを溜め込んでいるため、tailコマンドが使えます。

$ tail -f /tmp/swiftybeaver.log

iOSアプリ開発ではアプリはサンドボックス内のファイルにしかアクセス出来ないため、サンドボックス内のLibrary/Cacheにログが出力されます。

Screen Shot 2016-07-19 at 11.58.56 PM.png

SwiftyBeaver Platform (Macアプリ)

最後に、SwiftyBeaverの大きな特徴であろうSwiftyBeaverへログをアップし、Macのアプリで確認する方法です。

上記のAppDelegateのように、appIDappSecretencryptionKeyを設定してSBPlatformDestinationを初期化します。これらの値は、SwiftyBeaverのMacアプリをダウンロードして、左のギアアイコンから取得することができます。
AppleのAppID等とは関係ないので注意です。

Screen Shot 2016-07-19 at 11.42.02 PM.png

Macアプリでは簡単にデバイスのIDごとにログを絞り込めたり、より詳しい情報がキレイに見れます。

参考

The release of the SwiftyBeaver Logging Platform — SwiftyBeaver Blog — Medium
https://medium.com/swiftybeaver-blog/the-release-of-the-swiftybeaver-logging-platform-5c0447eda749

SwiftyBeaver Github
https://github.com/SwiftyBeaver/SwiftyBeaver

Log to Xcode Console - SwiftyBeaver Docs
http://docs.swiftybeaver.com/article/9-log-to-xcode-console

Log to File - SwiftyBeaver Docs
http://docs.swiftybeaver.com/article/10-log-to-file

Log to SwiftyBeaver Platform - SwiftyBeaver Docs
http://docs.swiftybeaver.com/article/11-log-to-swiftybeaver-platform

SwiftyBeaver Logging Platform - Product Hunt
https://www.producthunt.com/tech/swiftybeaver-logging-platform

48
48
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
48
48