2

ロギングにおけるこのフィルターのことについて、私は本当に混乱しています。ドキュメントとロギングクックブックを読みました。
私はいくつかのファイルで書かれたアプリケーションを持っています。各ファイルには、クラスとその例外があります。
- メイン ファイル: mcm - mcm で、configurator をインポートしてその
クラス
を開始します - configurator で、rosApi をインポートしてそのクラスを開始します

私が達成したいこと:
- メインファイルで、ログに記録するモジュールとそのレベルを決定します。
- すべてに対して 1 つのハンドラー。メインファイルで設定可能

アイデアは、メインファイルに渡されたオプションでランタイムごとにカスタマイズ可能な、1 つのファイルで特定のモジュールのオンとオフのデバッグをオンにしたいということです。

例:
-d を渡すと、configurator からのすべてのデバッグ情報が (さらに) 出力されますが、rosApi は出力されません。
-D を渡すと、コンフィギュレータと rosApi からのすべてのデバッグが出力されます

4

1 に答える 1

0

私がしているのは、次の行に沿ったロガーモジュールを作成することです:

import os
import logging

logger = logging.getLogger()
fh = logging.handlers.RotatingFileHandler(logfile, maxBytes=10000000, backupCount=10)
fm = logging.Formatter('%(asctime)s %(module)s %(levelname)s %(message)s')
fh.setFormatter(fm)
logger.addHandler(fh)
level = os.environ['LOGGING'].upper()
level = getattr(logging, level)
logging.getLogger().setLevel(level)

次にimport logger、すべてのモジュールの上部で実行します。

于 2012-07-05T18:34:03.373 に答える