。あなたのベースモジュールの1つでこの関数を定義し、何かを記録したいすべてのモジュールでこの関数を呼び出します。
あなたは、からログインしたいロガー名を指定してこの関数を呼び出すと、すべてのモジュールが
filename
引数で定義された同じログファイルに印刷したいすべてのモジュールから次に
import logging
def get_logger(name):
log_format = '%(asctime)s %(name)8s %(levelname)5s %(message)s'
logging.basicConfig(level=logging.DEBUG,
format=log_format,
filename='dev.log',
filemode='w')
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
console.setFormatter(logging.Formatter(log_format))
logging.getLogger(name).addHandler(console)
return logging.getLogger(name)
。
<base.py>
logger = get_logger('base')
logger.info('testing logger from module base')
<module2.py>
logger = get_logger('module2')
logger.info('testing logger from module module2')
<dev.log>
2017-08-11 00:34:00,361 base INFO testing logger from module base
2017-08-11 00:34:00,361 module2 INFO testing logger from module module2
logging.basicConfig()
あなたは(https://docs.python.org/2/library/logging.html)[ロギングに関するドキュメント]を読みましたか? – agtoever
ドキュメントを読みましたが、なぜロガー(somename)では動作するのですが、ロガー(__ name__)では動作しないのはわかりません https://docs.python.org/2/howto/logging-cookbook.htmlここの例 –