BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Appleが提供するSwiftのUnified Logging Systemの概要

Appleが提供するSwiftのUnified Logging Systemの概要

ブックマーク

原文(投稿日:2022/04/24)へのリンク

最近の一連の記事で、iOSだけに依らない開発者のMajid Jabrayilov氏は、ロギングの重要性に焦点を当ててきた。デバッガーで見つけるのが困難なバグの分析を可能にし、アプリを介してユーザの行動をよりよく理解するためである。

Xcodeデバッガーを使ってiOSアプリをテストすることは、アプリにバグがないことを確認するための妥当な良いアプローチかもしれない。一方で、これがシンプルに選択肢ではない場合もあるとJabrayilov氏は言っている。

たとえば、[バグ]はアプリを数日使用した後にのみ発生する場合があります。この場合、シミュレーターでアプリを実行して機能をテストしても意味がありません。ユーザがアプリケーションで何をしたか、そしてこの状況で、アプリケーションがユーザの操作にどのように反応するかを理解する必要があります。

Jabrayilov氏は、記事の中で、AppleのUnified Logging Systemを活用する手法について説明している。それにより、iOSアプリに適切なロギングシステムを構築するのと同じくらい簡単にできるようになる。

このアプローチの要はos.Loggerクラスである。このクラスでは、すべてのログエントリが所定のsubsystemcategoryの下にあるデバイスベースのシステムストアに保持される。Loggerは、tracenoticewarningcriticalなど、いくつかのレベルのログを提供する。ログエントリには、MacのConsole.appからアクセスできる。すべてのログ情報をConsole.appで簡単に読み取れるようにするために、iOS 14以降で利用可能なOSLogInterpolationポリシーを使うと便利だとJabrayilov氏は言っている。このポリシーには、配置、可視性、フォーマットなどを制御するオプションが含まれる。

AppleのUnified Logging Systemの興味深い機能は、ユーザのデバイスからログ情報を簡単にエクスポートできることである。これは、バグが本番稼働時のみに現れ、テスト中に再現できない場合に、本当に助かるものとなる。

この目的のために、カスタムOSLogStoreを定義する必要がある。これは、エントリカテゴリ、日付など、特定の基準に一致するすべてのログエントリのフィルタリングする役割を担う。Jabrayilovが示すように、OSLogStoreはアプリに簡単に統合できる。それによって、ユーザはボタンをタップしてログエントリをエクスポートし、オプションでそれを開発者と共有できるようになる。

まとめると、Jabrayilov氏は、iOSアプリにロギングを追加するための便利なテクニックについて説明している。興味がある場合は元の記事をお見逃しなく。サンプルコードを含んでおり、この概念の全てが詳細に説明されている。

作者について

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT