Python 3でのログ出力をカラー表示する方法は?

PYTHON3 チュートリアル

Python 3でのログ出力をカラー表示する方法

Python 3では、標準的な方法としては`colorama`というライブラリを使用することが一般的です。`colorama`を使うことで、ターミナル上でのログ出力をカラフルに表示することができます。

インストール方法

まずは、`colorama`ライブラリをインストールします。

pip install colorama

使用例1: シンプルなカラー表示

以下は、`colorama`を使って簡単なカラー表示を行う例です。

from colorama import Fore, Back, Style, init

init(autoreset=True)

print(Fore.RED + 'This is a red text')
print(Fore.GREEN + 'This is a green text')
print(Fore.BLUE + 'This is a blue text')

上記のコードを実行すると、それぞれの文字列が赤、緑、青で表示されます。

使用例2: 複数のスタイルを組み合わせる

`colorama`では、文字の色だけでなく、背景色やスタイル(太字、下線など)も指定することができます。

print(Back.RED + Fore.WHITE + Style.BRIGHT + 'Red text on white background')
print(Back.GREEN + Fore.BLACK + Style.NORMAL + 'Green text on black background')

上記のコードを実行すると、異なるスタイルのテキストが異なる背景色で表示されます。

使用例3: カラーリセット

最後に、`colorama`を使用した後は、カラー表示をリセットすることが重要です。

print(Fore.RED + 'This is red text')
print('This text is not colored')
print(Style.RESET_ALL + 'This text is also not colored')
print(Fore.GREEN + 'This is green text')

上記のコードを実行すると、`Style.RESET_ALL`を使ってカラー表示をリセットし、その後のテキストはデフォルトの色で表示されます。

Python 3でログ出力をカラー表示する方法は、主にloggingモジュールとcolorlogモジュールを組み合わせることで実現できます。まず、loggingモジュールを使用してログを出力し、その後colorlogモジュールを使ってログに色を付けることができます。

以下は、Python 3でcolorlogモジュールを使用してログに色を付ける例です。

“`python
import logging
import colorlog

# ロガーを作成
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

# colorlogのフォーマッターを作成
formatter = colorlog.ColoredFormatter(
“%(log_color)s%(levelname)s: %(message)s”,
log_colors={
‘DEBUG’: ‘cyan’,
‘INFO’: ‘green’,
‘WARNING’: ‘yellow’,
‘ERROR’: ‘red’,
‘CRITICAL’: ‘red,bg_white’,
}
)

# ハンドラーにフォーマッターを設定
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.addHandler(handler)

# ログを出力
logger.debug(“This is a debug message”)
logger.info(“This is an info message”)
logger.warning(“This is a warning message”)
logger.error(“This is an error message”)
logger.critical(“This is a critical message”)
“`

このコードでは、colorlog.ColoredFormatterを使用してログの各レベルに対して色を設定し、ログを出力しています。ログの各レベルに応じて異なる色が適用されるため、ログを見やすくすることができます。

購読
通知
0 Comments
Inline Feedbacks
View all comments