前提・実現したいこと
request.pyでひとつ上の階層のファイルをimportしたいのですが、
loggingについてのKeyErrorが発生します。
request.pyをmainディレクトリに移動すると問題なくimportができます。
その場合はsys.path.append('..')をコメントアウトしています。
よろしくお願いします。
###階層構造
mainディレクトリ --app_process.py --app_logger.py --logging.conf subディレクトリ --request.py
発生している問題・エラーメッセージ
Traceback (most recent call last): File "../app_process.py", line 19, in <module> from app_logger import logger File "../app_logger.py", line 4, in <module> logging.config.fileConfig('logging.conf') File "/home/bob/yes/lib/python3.6/logging/config.py", line 76, in fileConfig formatters = _create_formatters(cp) File "/home/bob/yes/lib/python3.6/logging/config.py", line 109, in _create_formatters flist = cp["formatters"]["keys"] File "/home/bob/yes/lib/python3.6/configparser.py", line 959, in __getitem__ raise KeyError(key) KeyError: 'formatters'
該当のソースコード
request.py import部分
python
1import sys, os 2sys.path.append('..') 3import app_process
app_process.py import部分
python
1from app_logger import logger
app_logger.py
python
1import logging, logging.config, datetime as dt 2 3logger = logging.getLogger('debugLogger') 4logging.config.fileConfig('logging.conf')
logging.conf
[loggers] keys=root, debugLogger [handlers] keys=consoleHandler, debugFileHandler [formatters] keys=logFormatter [logger_root] level=DEBUG handlers=consoleHandler [logger_debugLogger] level=DEBUG handlers=consoleHandler, debugFileHandler qualname=debugLogger propagate=0 [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=logFormatter args=(sys.stdout,) [handler_debugFileHandler] class=handlers.RotatingFileHandler level=DEBUG formatter=logFormatter args=('./log/app.log',) delay=False backupcount=10 maxbyte=10000 [formatter_logFormatter] format=%(asctime)s - %(name)s - %(levelname)s - %(message)s datefmt=%m/%d/%Y %I:%M:%S %p
試したこと
いくつか似たような現象は調べて、app_logger.pyを
下記のように書きなおすことは試してみました。
logging.config.fileConfig('./logging.conf', disable_existing_loggers=False)
補足情報(FW/ツールのバージョンなど)
python3.6
Ubuntu16.04.3 LTS
回答1件
あなたの回答
tips
プレビュー