メッセージに関する質問
ロガー「X」のハンドラーが見つかりませんでした
from Python のlogging
モジュールは、ここ SO では非常に一般的であるように見えますが、私のケースに対処するものをまだ見つけていません。
私のアプリケーションは、デーモンとして実行されている場合にのみこの問題を抱えているため、そこで何かを適切に設定していないと思います。Python 2.7 でpython-daemonパッケージを使用しています。
私の__init__.py
ファイルは、次の関数でロガーを初期化します。
def init_logger(logger_name, log_file):
'''
Returns: (Logger, [LoggerFH])
'''
logger = logging.getLogger(logger_name)
ch = logging.StreamHandler()
ch.setLevel(level=logging.DEBUG)
fh = logging.FileHandler(log_file)
fh.setLevel(level=logging.DEBUG)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
return logger, [fh, ch]
関数は次の方法で呼び出されます。
logger, logger_fhs = init_logger('logger_name', 'logger_file_path')
次に、デーモンは次のように初期化されます。
context = daemon.DaemonContext(
files_preserve=map(operator.attrgetter('stream'), logger_fhs)
)
with context:
bombs_away(args) # This application does not actually launch any bombs :)
私は何が欠けていますか?メッセージのソースを見つけるために他に何を確認できますか?