こんにちは!
今回はpythonでlogファイルを出力する方法を紹介します。
1. logging モジュールを使った基本的なログ出力
Pythonの標準ライブラリである logging モジュールを使えば、簡単にログを出力できます。
import logging
# ログの基本設定
logging.basicConfig(level=logging.INFO, filename="app.log", format="%(asctime)s - %(levelname)s - %(message)s")
# ログを記録
logging.info("これは情報レベルのログです")
logging.warning("これは警告レベルのログです")
logging.error("これはエラーレベルのログです")
このコードを実行すると、app.log というファイルにログが出力されます。
2. ログのレベルについて
logging モジュールでは、以下のようなログレベルを使用できます。
ログレベル | 説明 |
---|---|
DEBUG | デバッグ用の詳細な情報 |
INFO | 一般的な情報メッセージ |
WARNING | 警告メッセージ |
ERROR | エラーメッセージ |
CRITICAL | 重大なエラーメッセージ |
適切なレベルを選んでログを記録しましょう。
3. ロガーをカスタマイズする
複数のファイルで共通のロガーを使う場合は、Logger オブジェクトを作成して管理すると便利です。
カスタムロガーの作成
import logging
def setup_logger():
logger = logging.getLogger("my_logger")
if not logger.hasHandlers():
handler = logging.FileHandler("app.log")
formatter = logging.Formatter("%(asctime)s - %(filename)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
return logger
logger = setup_logger()
logger.info("カスタムロガーでログを記録")
4. コンソールとファイルの両方にログを出力する
ログをファイルに保存しながら、コンソールにも表示したい場合は、StreamHandler を追加します。
import logging
def setup_logger():
logger = logging.getLogger("my_logger")
if not logger.hasHandlers():
file_handler = logging.FileHandler("app.log")
console_handler = logging.StreamHandler()
formatter = logging.Formatter("%(asctime)s - %(filename)s - %(levelname)s - %(message)s")
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
logger.setLevel(logging.INFO)
return logger
logger = setup_logger()
logger.info("ファイルとコンソールの両方にログを出力")
最後に
今回は以上になります。
最後まで見ていただき、ありがとうございました。
では、また次の記事で~!