これは私のモジュールです:
# module.py
import logging
logging.basicConfig(filename='app.log')
logger = logging.getLogger(__name__)
def method(x):
logger.info('x is %s', x)
return x + x
私のモジュールはサードパーティのスクリプトによって使用されています。問題は、私のモジュールを上書きするいくつかのログ設定を行ったことです。
# main.py
import logging
from logging.config import dictConfig
from module import method
logger = logging.getLogger(__name__)
def setup_loghandlers():
dictConfig({
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"console": {
"level": "DEBUG",
"class": "logging.StreamHandler"
},
},
"root": {
"handlers": ["console"],
"level": "INFO",
}
})
setup_loghandlers()
y = method(20)
logger.info('y is %s', y)
を実行するmain.py
と、すべてのログがコンソールに表示されますが、実際に必要なのは module.py のログが app.log ファイルに移動することです
PS: は変更できません。変更できるmain.py
のは自分のmodule.py