次のメッセージを含むサーバーログファイルの出力を追跡できるようにしたいです。
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年初めに消えます。最新バージョンは、次のような多くのディストリビューションで引き続き使用できます。アーチ、ダーバン。