
ログファイルのあるディレクトリがあり、新しいファイルが随時追加されます。それらを結合ビューで 'tailf' したい (すべてのファイルのすべての行を結合して表示)
このために lnav が推奨されているのを何度か見ましたが、機能の説明に基づくとこれらのオプションをサポートするはずですが、ドキュメントが十分に明確ではありません。
具体的には、ディレクトリを追跡するためにlnavを実行すると、f\Fキーを使用してログファイルを切り替えることができますが、結合されたビューは表示されません。
答え1
確かに、 を使用しても、あなたのニーズを満たす良い解決策は見つかりませんlnav
。私が考えられる最善の方法はtail -f
、すべてのログ ファイルで を使用することです。
tail -f file_1.log ... file_n.log
これを使用する別のソリューションにはlogtail
いくつかの欠点がありますが、新しいログ ファイルが随時追加されるケースを処理します。
#!/bin/bash
# Quietly initialize logtail offset files
for logfile in *log
do
logtail $logfile
done > /dev/null
while :
do
# wait a second for new logs
sleep 1
for logfile in *log
do
# output new logs since last logtail run, prepend with log filename
logtail $logfile | sed "s/^/$logfile: /"
done
done
答え2
ファイルにタイムスタンプがあり、ファイル形式が理解できる場合、lnav でログメッセージの組み合わせビューを取得できます。lnav がログファイル形式を理解しない場合は、ファイルをプレーンテキストとして扱います。新しい形式定義は、その説明に従って作成できます。ドキュメンテーション。