[解決済み】PyLintメッセージ:logging-format-interpolation
質問
以下のコードについて。
logger.debug('message: {}'.format('test'))
pylint
は次のような警告を出します。
logging-format-interpolation (W1202)を参照してください。
ロギング関数で % フォーマットを使用し、% パラメータを 引数 ロギングステートメントが以下の呼び出し形式を持つ場合に使用されます。 "logging.(format_string.format(format_args...))" とします。このような の呼び出しは、代わりに % フォーマットを使用する必要がありますが、補間を行うのは パラメータを引数として渡すことで、ロギング関数を使用することができます。
この警告を消せることは知っていますが、理解したいのです。私は
format()
は、Python 3 でステートメントをプリントアウトするための好ましい方法です。なぜロガーステートメントには当てはまらないのでしょうか?
どのように解決するのですか?
loggerステートメントは、文字列のような以前の "%" フォーマットに依存し、loggerコールに与えられた追加の引数を使用してこの文字列の遅延補間を提供するため、それは真実ではありません。たとえば、次のようにします。
logger.error('oops caused by %s' % exc)
する必要があります
logger.error('oops caused by %s', exc)
のように、実際にメッセージが発せられた場合にのみ、文字列が補間されるようにします。
を使用する場合、この機能の恩恵を受けることはできません。
.format()
.
につきまして
最適化
セクションの
logging
のドキュメントを参照してください。
メッセージの引数の書式設定は、避けられなくなるまで延期されます。しかし、ロギングメソッドに渡される引数を計算するのもコストがかかるので、 ロガーがイベントを捨ててしまうような場合は、それを避けたほうがよいでしょう。
関連
-
Pythonによるjieba分割ライブラリ
-
python implement mysql add delete check change サンプルコード
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] どうすれば、文字列中のリテラルな中抜き文字を印刷し、また.formatを使用することができるのでしょうか?
-
[解決済み] 文字列フォーマット:% vs. .format vs. f-stringリテラル
-
[解決済み] Pylintの警告を無効にするにはどうしたらいいですか?
-
[解決済み] Python Logging - インポートモジュールからのロギングを無効にする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonの@decoratorsについてまとめてみました。
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み] Pythonでタプルを文字列フォーマットで表示する