* ログを簡単にカスタマイズして色分けして見やすくするPythonスクリプト [#j890183a]

ログが大量に出力されて見づらいと感じることがあります。

そこで、今回はPythonでログを色分けして見やすくするスクリプトを紹介します。

**スクリプト: colorize.py[#n559fc63]

 ```python
 import re
 import sys
 import time
 import signal
 
 # 色定義
 COLOR_CODES = {
     "RED": "\033[91m",
     "GREEN": "\033[92m",
     "YELLOW": "\033[93m",
     "BLUE": "\033[94m",
     "MAGENTA": "\033[95m",
     "CYAN": "\033[96m",
     "RESET": "\033[0m",
 }
 
 # 文字列と色のマッピング (辞書で管理)
 # 例: r"(FlutterLoader\.loadEntrypoint)" のように、
 # マッチしたグループ1を赤色で表示
 STRING_COLOR_MAP = {
     r"(FlutterLoader\.loadEntrypoint)": "RED",
     r"(Main function started)": "CYAN",
     r"^Exception$": "YELLOW",  # 行頭にException、行末に何もない場合のみマッチ
 }
 
 def colorize_log(line):
     """Flutter のログ行に色を付ける関数
 
     Args:
         line: ログの一行
 
     Returns:
         色付けされたログ行
     """
 
     for pattern, color in STRING_COLOR_MAP.items():
         match = re.search(pattern, line)
         if match:
             # マッチしたグループを色付け
             highlighted_text = f"{COLOR_CODES[color]}{match.group(1)}{COLOR_CODES['RESET']}"
             line = line.replace(match.group(1), highlighted_text)
     return line
 
 def main():
     """Git Bash からの出力をパイプで受け取り、色付けして出力する関数
     """
     def signal_handler(sig, frame):
         print("\nCtrl+C で終了します。")
         sys.exit(0)
 
     signal.signal(signal.SIGINT, signal_handler)
 
     try:
         while True:
             line = sys.stdin.readline()
             if not line:
                 break
             print(colorize_log(line), end="")
             sys.stdout.flush()
     except KeyboardInterrupt:
         print("\nCtrl+C で終了します。")
 
 if __name__ == "__main__":
     main()
 
 # --- 使い方 ---
 # 1. このスクリプトを colorize.py として保存
 # 2. Git Bash で以下のコマンドを実行
 #    flutter run 2>&1 | python colorize.py
 # 3. Ctrl+C で flutter run を終了してください。
 #    その後、このスクリプトも自動的に終了します。
 # 4. STRING_COLOR_MAP に、色を付けたい文字列と色を追加
 #    例:
 #      r"(Building flutter tool)": "GREEN",
 #      r"(Error:)": "RED",

**使い方** [#gaa8b18c]

1. 上記のスクリプトを `colorize.py` という名前で保存します。

2. Git Bash で以下のコマンドを実行します。

下記のコマンドの説明: 先頭のflutter runは、どんなコマンドでもいいですが、2>&1 以降は忘れないようにつけてください。
 
 flutter run 2>&1 | python colorize.py
 

3. Ctrl+Cで`flutter run`を終了してください。
3. Ctrl+Cで終了してください。

その後、このスクリプトも自動的に終了します。

**カスタマイズ** [#ad31b608]

`STRING_COLOR_MAP` に、色を付けたい文字列と色を追加することで、ハイライト表示する部分をカスタマイズできます。

**例** [#j560563d]

 STRING_COLOR_MAP = {
     # ... (他のパターン)
     r"(Building flutter tool)": "GREEN",
     r"(Error:)": "RED",
 }

**まとめ** [#o4c48b70]

このスクリプトを使うことで、簡単にカスタマイズできるようになっているので、ログが見やすくなり、開発効率が向上するでしょう。

ぜひ活用してみてください。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS