次のメッセージを含むサーバーログファイルの出力を追跡できるようにしたいです。
INFO
SEVERE
次に、その場合はSEVERE
行を赤で表示し、そうであればINFO
緑で表示します。これを行うのに役立つように、コマンドにどのエイリアスを設定できますかtail
?
答え1
試してみてくださいマルチテール1. これは権利の超一般化であるtail -f
。別のウィンドウで複数のファイルを表示したり、内容に応じて行を強調表示したりすることができます。
multitail -c /path/to/log
色は設定可能です。デフォルトのカラースキームが適切でない場合は、設定ファイルに直接作成してください。たとえば、multitail -cS amir_log /path/to/log
次のコマンドを使用して呼び出します~/.multitailrc
。
colorscheme:amir_log
cs_re:green:INFO
cs_re:red:SEVERE
サーバーがインストールしにくい場合の別の解決策基準tail -f
色選択制御シーケンスを追加するためにsedまたはawkで使用するツールです。これを行うには、tail -f
stdoutがパイプの場合でもstdoutをすぐにフラッシュする必要があります。すべての実装がこれを行うかどうかはわかりません。
tail -f /path/to/log | awk '
/INFO/ {print "\033[32m" $0 "\033[39m"}
/SEVERE/ {print "\033[31m" $0 "\033[39m"}
'
またはsed
tail -f /path/to/log | sed --unbuffered \
-e 's/\(.*INFO.*\)/\o033[32m\1\o033[39m/' \
-e 's/\(.*SEVERE.*\)/\o033[31m\1\o033[39m/'
sedがGNU sedでない場合は、\o033
リテラルエスケープ文字に置き換えてください--unbuffered
。
もう一つの可能性はtail -f
実行することですEmacsシェルバッファを使用し、Emacsの構文カラー機能を使用します。
¹歴史的なウェブサイト2021年初めに消えます。最新バージョンは、次のような多くのディストリビューションで引き続き使用できます。アーチ、ダーバン。
答え2
答え3
見たことがありますか?西沢?-c
オプションを使用するか、設定ファイルから直接特定のキーワードのデフォルトの色をカスタマイズできます。日焼け後に画面が鮮明になったら、オプションを使用する必要があります-A
。
編集する:
線全体を赤で表示するには、次のことを試すこともできます。
$ tail -f myfile.log | perl -pe 's/.*SEVERE.*/\e[1;31m$&\e[0m/g'
\e[1;31m
赤をあげます。黄色が欲しい場合はそれを使用し\e[1;33m
、緑が必要な場合はそれを使用してください\e[1;32m
。\e[0m
プレーンテキストの色を復元します。