1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【Xcode/Swift】たかがログ、されどログ、素晴らしきos.Logger

Last updated at Posted at 2024-06-23

はじめに

iOS(Swift)では複数ログ出力する方法がある。
最新バージョンのXcodeを使用して検証してみようと思う。

前提

項目 内容
Mac OS Sonoma 14.5
Xcode 15.4
使用言語 Swift (バージョンは5)

結論

いきなりですが、ログ出力はos.Loggerを使ってください!!
これが便利すぎるので、他のログ出力メソッドは使う必要ありません:thumbsup:

ログの種類

print

 昔からあるシンプルなログ出力メソッド。
 タイムスタンプは自動では出力されないが、他言語と同じ使い方で出力可能。

NSLog

 これも思いっきり昔からあるログ出力メソッド。
 自動でタイムスタンプが出力される。

debugPrint

 これもシンプルなログ出力メソッドで、Debug時の効率が良い(らしい)

os.Logger

 勝ち、圧倒的勝利、便利すぎる。
 Xcode15からoslogと統合され、カテゴリなどに合わせてログをフィルタリングすることが可能となります。
 また、JumpToSource機能を使って、os.Loggerから出力したログを右クリックで"Jump To Source"を選択すると、ログ出力した該当箇所にジャンプできるます。
 はっきり言って便利すぐる:v::v::v:

・使い方
 サンプルコードは以下の通り

import os

〜〜〜〜〜〜

    static let logger = Logger(subsystem: "com.test.debug.hogehoge", category: "Logger")

    private func testLogger() {
        ViewController.logger.trace("Logger: \(#function), \(#line)")
    }

スクリーンショット 2024-06-23 19.22.34.png

Tips

・Swiftプログラミング言語で使用される特殊な識別子がいくつか用意されている。

 #file
 →ファイルまでのパスを出力
 #function
  →メソッド名を出力
 #line
 →行数を出力

・デバッグエリアのMetadataの各種設定をしないとログ出力は見にくかも(Xcode15から?)
 スクリーンショット 2024-06-23 19.23.15.png

1
3
1

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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?