1. ホーム
  2. python

[解決済み] 異なる設定で2つのファイルにログを記録する

2022-12-28 05:52:05

質問

私はすでに、すべてのモジュールにわたるすべてのメッセージが単一のファイルに保存される、基本的なロギング設定を使用しています。しかし、私は今より複雑なソリューションが必要です。

  • 2 つのファイル: 最初のは同じままです。
  • 2つ目のファイルは、何らかのカスタムフォーマットである必要があります。

私はモジュールのためのドキュメントを読みました、しかし、それらは、今のところ、私にとっては非常に複雑です。ロガー、ハンドラ...

だから、簡単に言えば

Python 3で2つのファイルにログを記録する方法、つまり。

import logging
# ...
logging.file1.info('Write this to file 1')
logging.file2.info('Write this to file 2')

どのように解決するのですか?

このようにすればよいでしょう。

import logging
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')


def setup_logger(name, log_file, level=logging.INFO):
    """To setup as many loggers as you want"""

    handler = logging.FileHandler(log_file)        
    handler.setFormatter(formatter)

    logger = logging.getLogger(name)
    logger.setLevel(level)
    logger.addHandler(handler)

    return logger

# first file logger
logger = setup_logger('first_logger', 'first_logfile.log')
logger.info('This is just info message')

# second file logger
super_logger = setup_logger('second_logger', 'second_logfile.log')
super_logger.error('This is an error message')

def another_method():
   # using logger defined above also works here
   logger.info('Inside method')