web-dev-qa-db-ja.com

Apple Swift

注意:

これはリンクされた質問の複製ではありません

ゴール:

  • printNSLogの違いを探していません
  • 実際、どちらも使いたくありません(現在はprintを使用しています)
  • Apple推奨される方法を探しています。コマンド/ドキュメントが見つからないようです。コマンドが存在することを知っています。

現在の実装:

現在、いくつかのグローバル関数でprintステートメントを使用しています

質問

  1. エラーを処理するための推奨される方法/アプローチは何ですか(デバイスのコンソールに書き込むため、NSLogを使用したくありません)
  2. これは、開発中のデバッグ専用です
16
user1046037

os_log を見てください。それはあなたが探しているすべてのものを提供しています。

免責事項:

Swift forums からのこのスレッドをご覧になることを強くお勧めします。tl; dr

これはAppleの推奨事項ですが、ログの取得に関する懸念のため、その使用法については議論されています。

  • ログの取得は簡単なプロセスではありません。実は難しいです。 こちらをご覧ください
  • ほとんどのユーザーの場合、ログファイルは100〜300 Mbsになります。送信が難しくなります。

開発中のデバッグには最適ですが、アプリユーザーがトリガー、取得、送信するのは面倒です。


例:

let customLog = OSLog(subsystem: "com.your_company.your_subsystem_name", category: "Category")
os_log("This is info that may be helpful during development or debugging.", log: customLog, type: .debug)

いくつかの素晴らしい参考文献:

os_logが非常に強力である理由は次のとおりです。

  • さまざまなログレベルを提供します
  • 異なるカテゴリがあります
  • privateおよびpublicログ
  • それは軽量で、アップルによって構築されました。ポッドは不要
  • デバッグ中にのみ使用できるprintとは異なり、os_logは、リリースされたアプリを(リアルタイムで)確認し、コンソールアプリでログを表示するために使用できます。

enter image description here

これは、 貪欲なXcode のないアプリケーションのライフサイクルの変化を観察するのに最適です。 Xcodeでは、アプリを一時停止状態にすることはできません...


注:os_logは+ iOS10でのみ使用できます

2018年と2019年のWWDCからの新しいビデオもありますが、os_signpostに重点を置いています。見る:

30
Honey