← XeFM English | 日本語 · crftwr/xefm on GitHub · craftware

ログ機能

English | 日本語

概要

XeFM には充実したログ機能があり、アプリケーションの出力、エラーメッセージ、動作に関する情報を専用のログペインに記録します。ログ機能を使うと、XeFM の動作を見守ったり、問題をトラブルシューティングしたり、アプリケーションが何をしているかを把握したりできます。

機能

ログペインの表示

ログペインは XeFM の画面の下部に表示され、次のものを表示します。

メッセージの種類

メッセージは種類ごとに色分けされます。

画面の配置

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│              Main XeFM Interface                             │
│              (File Browser)                                 │
│                                                             │
├─────────────────────────────────────────────────────────────┤
│ Log Messages:                                               │
│ 14:23:45 [Main] INFO: XeFM started                          │
│ 14:23:46 [FileOp] INFO: Copying file.txt to backup/        │
│ 14:23:47 [FileOp] INFO: Copy completed successfully        │
│ 14:23:48 [STDOUT] Processing complete                      │
└─────────────────────────────────────────────────────────────┘

操作

ログのスクロール

ファイル一覧からフォーカスを移さずにログをスクロールするアクションが 4 つあります。どのキーに割り当てられているかは F1 で確認してください。

自動スクロールの動作

よくある使い方

ファイル操作を見守る

ファイル操作をリアルタイムで見守れます。

14:23:45 [FileOp] INFO: Copying file1.txt to backup/
14:23:46 [FileOp] INFO: Copy completed successfully
14:23:46 [FileOp] INFO: Copying file2.txt to backup/
14:23:47 [FileOp] INFO: Copy completed successfully

エラーをトラブルシューティングする

エラーを見つけて、その内容を理解できます。

14:23:45 [FileOp] INFO: Copying protected.txt to backup/
14:23:46 [FileOp] ERROR: Permission denied

プログラムの出力を見る

外部プログラムからの出力を確認できます。

14:23:45 [Main] INFO: Running external script
14:23:46 [STDOUT] Processing file 1 of 10
14:23:47 [STDOUT] Processing file 2 of 10
14:23:48 [STDOUT] Processing complete

進み具合を追う

時間のかかる操作を見守れます。

14:23:45 [Archive] INFO: Extracting archive.zip
14:23:46 [Archive] INFO: Extracted 100 of 500 files
14:23:47 [Archive] INFO: Extracted 200 of 500 files
14:23:48 [Archive] INFO: Extracted 300 of 500 files
14:23:49 [Archive] INFO: Extraction completed

設定

ログペインのサイズ

ログペインのサイズは設定で変えられます。

メッセージの保持

XeFM が保持するログメッセージの数は設定で変えられます。

ログレベル

メッセージには次のいずれかのレベルが付きます。

ログには INFO 以上が表示されます。これを変える設定はありません。

ログをクリップボードにコピーする

ログペインの内容は、デスクトップアプリでもターミナルでも同じく、2 つの方法でシステムのクリップボードにコピーできます。バグ報告、チャットのメッセージ、メモに貼り付けるのに便利です。

選択した部分をコピーする

マウスでログの上をドラッグして行を強調表示し(ダブルクリックで単語、トリプルクリックで行を選択します。上端や下端を越えてドラッグすると選択が続きます)、コピーのキー(Ctrl-C。macOS アプリでは、キーマッププリセットによって Command-C にも割り当てられています。キーマッププリセットを参照してください)を押します。ログでテキストが強調表示されているときは、このキーはそのテキストをコピーします。強調表示がないときは、ファイルをファイルクリップボードに入れます。テキストがクリップボードに入ると強調表示は消えます。

このキーは、最後にどのペインをクリックしていたかにかかわらず、ログで強調表示されているものをコピーします。そのため、ログで選択してからファイル一覧に戻っても、コピーできなくなることはありません。何も強調表示されていなければ、何もしません。

Edit ▸ Copy Log Selection はメニューから同じことを行います。何かを選択するまではグレー表示になっています。

ログ全体をコピーする

Edit ▸ Copy All Logs は、ペインがまだ保持しているすべての行をコピーします。起動時からの行も、スクロールして見えなくなった行も、バッファーの上限(2000 行)まですべてです。コピーした行数はログ自体に表示されます。ログを貼り付けてほしいと頼まれたときは、これを使ってください。

このアクションには既定のキーがありません。キーを割り当てるには、~/.xefm/config.py で copy_log_all をバインドします。

KEY_BINDINGS['copy_log_all'] = ['Ctrl-G']

ファイルにはまったく触れないキーがほしい場合は、copy_log_selection(ログ専用のアクションで、既定ではキーが割り当てられていません)を同じようにバインドします。

コピーされる形式

行はペインに表示されているとおりにコピーされます。ロガーのメッセージにはタイムスタンプ(HH:MM:SS)、ロガー名、レベルが付き、アプリ自身のステータス行は描画されているとおりのプレーンテキストとしてコピーされます。

14:23:45 [Main  ] INFO: Application started
14:23:46 [FileOp] INFO: Loaded directory: /home/user/documents
Copied 3 names to clipboard
14:23:47 [Main  ] WARNING: Configuration file not found, using defaults

選択した部分は画面上の配置どおりにコピーされるので、折り返された長い行は折り返し位置で分かれた状態になります。Copy All Logs は折り返さずに行全体をコピーします。

ヒントとコツ

最近のエラーを探す

  1. ログを最新のメッセージの位置にしておきます(既定ではそうなっています)
  2. scroll_log_up で 1 行ずつ上にスクロールします
  3. 赤いエラーメッセージを探します

操作の履歴を振り返る

  1. scroll_log_page_up で履歴を 1 ページずつさかのぼります
  2. scroll_log_page_down でまた先に進みます
  3. メッセージを時系列で確認します

長い操作を見守る

  1. 操作中はログペインを表示したままにします
  2. 進み具合のメッセージに注目します
  3. エラーや警告がないか確認します
  4. 完了メッセージを確かめます

問題をデバッグする

  1. 詳しい情報を得るために DEBUG ログレベルを有効にします
  2. 問題を再現させます
  3. 手がかりを探してログメッセージを確認します
  4. エラーメッセージと警告を探します

トラブルシューティング

ログペインが表示されない

問題: ログペインが表示されません。

解決策: 設定を確認してください。

メッセージのスクロールが速すぎる

問題: 新しいメッセージがすぐに流れ去ってしまいます。

解決策:

メッセージが多すぎる

問題: ログペインがメッセージであふれてしまいます。

解決策:

利点

ユーザーにとって

トラブルシューティングにとって

開発者にとって

高度な機能

メッセージのタイムスタンプ

すべてのメッセージにタイムスタンプが付きます。

14:23:45 [FileOp] INFO: Operation started
14:23:46 [FileOp] INFO: Operation completed

形式:HH:MM:SS(24 時間表記)

発生元の表示

メッセージには発生元が表示されます。

複数行のメッセージ

複数行の出力はそのまま保たれます。

14:23:45 [STDOUT] Processing file: example.txt
14:23:45 [STDOUT] Size: 1024 bytes
14:23:45 [STDOUT] Modified: 2024-01-15

色分け

メッセージは見分けやすいように色分けされます。

おすすめの使い方

こまめに確認する

メッセージの確認

まとめ

XeFM のログ機能を使うと、アプリケーションの動作を隅々まで把握でき、動作の見守り、問題のトラブルシューティング、アプリケーションが何をしているかの理解に役立ちます。色分けされ、スクロールできるログペインのおかげで、操作を追跡し、問題をすばやく見つけるのが簡単になります。

開発者向けのドキュメントは doc/dev/LOGGING_SYSTEM.md を参照してください。