Help us understand the problem. What is going on with this article?

Xcodeで過去のデバッグ実行のログを確認する

More than 1 year has passed since last update.

「なんでログすぐ消えてしまうん」

通常、Xcodeのデバッグ実行時のログは、Xcodeの右下に出てくるコンソール部分で確認すると思います。ですが、ここはあくまでコンソール画面なので、次のデバッグ実行をしたりすると、それまでのログの内容は消えてしまいます。。。

なので、消えない様にコピペでログを保存したりする訳ですが、怪しげなログが出た時とか、再現性の低いバグとか、ものすごく手間のかかる手順の時に限って、ログの保存が出来てなくて「なんでログすぐ消えてしまうん」って悲しい思いをした人は少なくないと思います。

今回はそんな人に役立つかも知れない記事です。

過去のデバッグログを確認する

結論から言うと、Xcodeは過去のデバッグ実行時のログをある程度、保存しています。
(あれだけ容量食うんだからそれくらい保存していて当然なのかも知れませんが、ありがたいですね)

保存されているログは、Xcodeの画面左端にあるナビゲーターエリアのレポートナビゲーターから確認できます。

Xcode9の場合は、一番右にある赤丸で囲んだアイコンを選択すると、レポートナビゲーターが表示されます。

▶︎Debugで表示されている項目がデバッグ実行時の履歴です。
ここで確認したいログを選択すると、右側のエディタ部分(赤枠内部)にデバッグ実行時のログが表示されます。

ログの保存期間

ログが保存される期間や条件等は公式ドキュメントでも確認できませんでした。

が、いろいろと試した結果、どうやらプロジェクト(Xcode)を閉じると、最新のログ以外は消去される様です。

(ちなみに、今回のスクリーンショットの場合、3/6に撮影しているので条件が合えば1ヶ月以上前のログでも保存されていることが判ります)

いずれにせよ過信は禁物ですが、ログを取り忘れた場合のリカバリには十分だと思われます。

便利な使い方

このレポートナビゲーターからのログ表示は、過去分だけでなく実行中のデバッグのログも確認できます。

コンソールに比べて画面が広いので、ログを俯瞰したい場合に便利ですし、いちいちデバッグエリアをドラッグで最大化する手間もいりません。

また、コンソールのログにはフィルタが適用できるので、コンソールにフィルタを適用して特定のログの発生をコンソールで拾い、そのままレポートナビゲーターのログを見れば前後のログをすぐに確認できるというのも便利です。

さらに、地味に便利なのが、実機でのアプリ起動時にエラーがダイアログで出ることがありますが(証明書絡みとかで)、そのエラー内容がログの部分に出力される点です。よく判らないエラーの場合は、そのままコピーしてグーグル先生を頼ることができます。

まとめ

これを覚えておけば、ログの取り忘れでヘコむことが無くなるかも知れません。
無事回収できたログでヘコむことになるかも知れませんが・・・

m__ike_
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away