\

Pythonで複数のモジュールからログを出力する場合、それらを一つのファイルにまとめることができます。以下にその手順を説明します。

メインモジュールのログ出力設定

まず、メインモジュールでロガーを作成します。このロガーは、他のモジュールでも使用します。

import logging
import sub_module

# ロガー(loggingSample)の作成
logger = logging.getLogger('loggingSample')
logger.setLevel(logging.DEBUG)

# ファイルハンドラーの作成とログレベルの設定
fh = logging.FileHandler('app.log')
fh.setLevel(logging.DEBUG)

# フォーマッターの作成
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)

# ハンドラーの追加
logger.addHandler(fh)

サブモジュールのログ出力設定

次に、サブモジュールでロガーを作成します。このロガーは、メインモジュールで作成したロガーに基づいています。

import logging

# ロガーの作成
module_logger = logging.getLogger('loggingSample.sub_module')

class Sample:
    def __init__(self):
        self.logger = logging.getLogger('loggingSample.sub_module.Sample')
        self.logger.info('Sample クラスのインスタンスを生成しました')

    def do_something(self):
        self.logger.info('do_something が呼び出されました')

def some_function():
    module_logger.info('some_function が呼び出されました')

これらの設定により、メインモジュールとサブモジュールの両方からのログが一つのファイルに出力されます。これにより、アプリケーション全体のログを一元管理することが可能になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です