🎨

Docker logsの出力に色をつけて可読性を向上させる

2024/09/11に公開

Docker logsの出力に色をつけて可読性を向上させる

Dockerコンテナのログを確認する際、docker logsコマンドを使用しますが、デフォルトでは全てのテキストが同じ色で表示されます。これは、特にログが長く、重要な情報を素早く見つける必要がある場合に問題となることがあります。

Monochrome Docker Logs

この記事では、docker logsの出力に色をつけて、ログの可読性を向上させる方法を紹介します。

スクリプトの作成

まず、以下の内容のBashスクリプトを作成します。このスクリプトは標準入力から行を読み取り、特定のキーワードに基づいて色をつけます。

highlight
#!/bin/bash

# 色の定義
RED='\033[0;31m'
YELLOW='\033[0;33m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color

# 標準入力を読み取り、特定の文字列に色を付ける
while IFS= read -r line
do
    if [[ $line == *ERROR* ]]; then
        printf "${RED}%s${NC}\n" "$line"
    elif [[ $line == *WARNING* ]]; then
        printf "${YELLOW}%s${NC}\n" "$line"
    elif [[ $line == *INFO* ]]; then
        printf "${GREEN}%s${NC}\n" "$line"
    else
        printf "%s\n" "$line"
    fi
done

インストール方法

  1. スクリプトを highlight という名前で保存し、実行権限を付与します:

    nano ~/bin/highlight
    # スクリプトの内容をペースト
    chmod +x ~/bin/highlight
    
  2. パスを通すために、.zshrc(または.bashrc)に以下の行を追加します:

    export PATH="$HOME/bin:$PATH"
    
  3. 変更を反映させます:

    source ~/.zshrc
    

スクリプトの使用方法

スクリプトをインストールしたら、以下のようにしてdocker logsの出力にパイプで渡すことができます:

docker logs your_container_name | highlight

リアルタイムでログを追跡したい場合は、-fオプションを使用します:

docker logs -f your_container_name | highlight

実行結果の例

以下は、このスクリプトを使用して色付けされたログの例です:

Colored Docker Logs

ご覧のとおり、ログの可読性が大幅に向上しています。

注意点

  1. このスクリプトは、ログ内の特定のキーワード(ERROR、WARNING、INFO)を探して色をつけています。ログの形式が異なる場合は、スクリプトを適宜調整する必要があります。

  2. 大量のログを処理する場合、このスクリプトはパフォーマンスに影響を与える可能性があります。大規模なログ処理には、より効率的なツール(例:awksed、または専用のログ処理ツール)を検討することをお勧めします。

  3. ターミナルがANSIカラーコードをサポートしていることを確認してください。ほとんどの現代的なターミナルはサポートしていますが、一部の環境では色が表示されない可能性があります。

まとめ

この簡単なBashスクリプトを使用することで、docker logsの出力に色をつけ、ログの可読性を大幅に向上させることができます。エラーや警告をすばやく識別できるようになり、ログの解析がより効率的になります。

必要に応じてキーワードや色を調整し、特定のニーズに合わせてカスタマイズすることができます。この方法を使って、Dockerログの管理をより効果的に行ってください。

株式会社Xronotech

Discussion