0

メッセージに関する質問

ロガー「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 :)

私は何が欠けていますか?メッセージのソースを見つけるために他に何を確認できますか?

4

1 に答える 1

1

私のモジュールの 1 つは、ロガーを呼び出して、呼び出される前のインポート時間中にメッセージをログに記録しようとしましたinit_logger

于 2013-08-04T14:33:12.627 に答える