3

仕事上、作成したサービスの出力ログを監視する必要がある場合があります。これらのログは存続期間が短く、必ずしも必要としない多くの情報が含まれています。この時点まで、私は以下を使用してそれらを見てきました:

grep <tag> * | less

ここで、<tag>は INFO、DEBUG、WARN、または ERROR のいずれかです。エラーの約 10 倍の警告、警告の約 10 倍のデバッグなどがあります。関連する DEBUG メッセージの海で 1 つの ERROR をキャッチするのが難しくなります。たとえば、すべての「WARN」メッセージを端末の左側に表示し、すべての「ERROR」メッセージを右側に表示する方法が欲しいです。

tmux と screen を使用してみましたが、私の開発マシンでは動作していないようです。

4

4 に答える 4

5

これをやってみてください:

FILE=filename.log
vim -O <(grep 'ERR' "$FILE") <(grep 'WARN' "$FILE")
于 2012-10-18T15:37:55.710 に答える
2

これらがライブ ログである場合、これら 2 つのコマンドを別々のターミナルで実行するのはどうでしょうか。

エラー:

tail -f * | grep ERROR

警告:

tail -f * | grep WARN

編集

これを自動化するには、tmux セッションで開始できます。ここで説明したものと同様の tmux スクリプトを使用してこれを行う傾向があります。

あなたの場合、スクリプトファイルには次のようなものが含まれている可能性があります。

モニター.tmux

send-keys "tail -f * | grep ERROR\n"
split
send-keys "tail -f * | grep WARN\n"

次に、次のように実行します。

tmux new -d \; source-file monitor.tmux; tmux attach
于 2012-10-18T15:40:22.130 に答える
2

sed を使用して目的の行をインデントするだけです。または、色を使用します。たとえば、ERRORS を赤くするには、次のようにします。

$ r=$( printf '\033[1;31m' )  # escape sequence may change depending on the display
$ g=$( printf '\033[1;32m' )
$ echo $g  # Set the output color to the default
$ sed "/ERROR/ { s/^/$r/; s/$/$g/; }" *
于 2012-10-18T16:54:37.147 に答える
0

screenを使用してこれを行うことができます。画面を縦に分割し、tail -f LOGFILE | grep KEYWORD各ペインで実行するだけです。

ショートカットとして、次の rc ファイルを使用できます。

split -v
screen bash -c "tail -f /var/log/syslog | grep ERR"
focus
screen bash -c "tail -f /var/log/syslog | grep WARN"

screen次に、次を使用してインスタンスを起動します。

screen -c monitor_log_screen.rc

tail -fもちろん、分割を増やしたり、 やなどのコマンドを使用watchして、さまざまな出力のライブ更新を取得したりすることで、この概念をさらに拡張することができます。

また、複数のウィンドウ (監視付き) やhardstatusの使用など、他の画面機能についても調べてください。非常に包括的な「監視コンソール」を作成できます。

于 2012-10-18T15:53:53.610 に答える