最近、いくつかのサービスのログファイルの色付けを有効にしました。そのために、ANSIエスケープシーケンスを使用していると思います。このように見えます:
[2014-06-12 10:56:43,214] [main] [VOID] ESC[34mINFO ESC[0;39m ESC[36mc.a.m.p.s.config.DataSourceConfigESC[0;39m
私の同僚は主にtail
を使用してログファイルを表示しますが、私はless
の方が好きです。残念ながら、less
はこれらのエスケープコードを自動的に取得しません。代わりに、ログファイルが「バイナリファイルである可能性があります。とにかく参照してください」と表示されます。
-r
オプションを追加すると、less
で色が表示されますが、それでも「バイナリファイル」の質問が表示されます。
これを回避する方法はありますか?はいの場合、これをデフォルトにすることはできますか?
フラグは-f
または--force
です。
less -f -r myfile
デフォルトにするには、この環境変数をたとえば/etc/profile
に設定する必要があります。
LESS=-f
ログファイル自体に色を付けることは決してありません。これにより、ログファイルを操作したり、少なくとも出力が乱雑になったりするサードパーティのスクリプトやツール(grep、sed、awk ...など)が破損する可能性があります。
代わりに、ログファイルを監視/調整するときに、オンデマンドで出力に色を付けます。たとえば、 colortail
を使用します。