12

ピラミッド アプリケーションがあり、ログを stderr および stdout に取得したいと考えています。stdout は「INFO」レベル以下である必要があります。stderr は「WARN」以上である必要があります。これを行うには、.ini ファイルをどのように変更すればよいですか?

現在、私はこのようにログを記録していますが、これは正しい方法と考えられますか?

ログ = logger.getLogger(__name__)
log.info("更新...")
log.error("MAYDAY MAYDAY... BOOM!!!")

現在、私はこれであるデフォルトのロギングを使用しています。

[ロガー]
キー = ルート、アプリ

【ハンドラ】
キー = コンソール

[フォーマッター]
キー = ジェネリック

[logger_root]
レベル = 警告
ハンドラ = コンソール

[logger_app]
レベル = 警告
ハンドラ =
qualname = アプリ

[ハンドラ_コンソール]
クラス = StreamHandler
args = (sys.stderr,)                                                                                                                          
85 レベル = 未設定
フォーマッタ = ジェネリック

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
4

1 に答える 1

11

複数のハンドラーをカンマ区切りでルートに追加できます。通常の「このロギング レベルを超えるメッセージのみを受け入れる」基準 (つまり、デバッグ メッセージのみ) の外でフィルタリングする場合は、ロギング フィルタのようなものを使用して、特定のレベルに基づいてレコードを受け入れ/拒否する必要があります: http:// docs.python.org/library/logging.html#filter-objects

使用している現在のロギング方法log = logging.getLogger(__name__)は完全に有効であり、ロギング階層を編成する便利な方法です。

于 2011-06-03T08:12:33.063 に答える