web-dev-qa-db-ja.com

pythonエンコーディングのモジュールロギングを要求します

私はpythonを使用していて、module == 2.18.4をリクエストしています

リクエストで一部のデータをクロールしている間、デバッグにロギングモジュールを使用しました。

ログを次のように表示します。

[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290  

しかし、私はこれを取得します:

[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,974 EUC-JP Japanese prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:36,990 EUC-KR Korean prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:36,994 CP949 Korean prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:37,009 EUC-TW Taiwan prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:37,036 utf-8 not active
[DEBUG] 2018-01-25 03:15:37,036 SHIFT_JIS Japanese confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,036 EUC-JP not active
[DEBUG] 2018-01-25 03:15:37,036 GB2312 Chinese confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,036 EUC-KR not active
[DEBUG] 2018-01-25 03:15:37,036 CP949 not active
[DEBUG] 2018-01-25 03:15:37,036 Big5 Chinese confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,036 EUC-TW not active
[DEBUG] 2018-01-25 03:15:37,036 windows-1251 Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 KOI8-R Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 ISO-8859-5 Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 MacCyrillic Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 IBM866 Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 IBM855 Russian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 ISO-8859-7 Greek confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 windows-1253 Greek confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 ISO-8859-5 Bulgairan confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 windows-1251 Bulgarian confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 TIS-620 Thai confidence = 0.01
[DEBUG] 2018-01-25 03:15:37,038 ISO-8859-9 Turkish confidence = 0.47949350706
[DEBUG] 2018-01-25 03:15:37,038 windows-1255 Hebrew confidence = 0.0
[DEBUG] 2018-01-25 03:15:37,038 windows-1255 Hebrew confidence = 0.0
[DEBUG] 2018-01-25 03:15:37,038 windows-1255 Hebrew confidence = 0.0
...

ログにそのエンコードを入れたくありません。どうすればそれらを削除できますか?

12
Seung-Woo Lee

モジュールのログレベルを設定してみてくださいchardet.charsetprober DEBUGよりも高い値(例:INFO)。

logger = logging.getLogger('chardet.charsetprober')
logger.setLevel(logging.INFO)
8
user9304801

私は同じ問題を抱えていて、これらの余分なログが chardet.charsetprober モジュールから来ているのを見つけました。

これらのログを抑制するには、インポート後にこれを配置します。

logging.getLogger('chardet.charsetprober').setLevel(logging.INFO)

これにより、 chardet.charsetprober モジュールからのDEBUGレベルのメッセージは出力されず、必要なログメッセージのみが表示されます。

それが役に立てば幸い!

4
Om Prakash

response.content.decode('ISO-8859-1')ミックス文字セットのデコード用に設定し、私のために働いた

2
J.Z

この問題はr.text(返されたtextresponse属性)と関係があると思います。 requestsは特定のエンコーディングを知らないので、ちょっと試してみる必要があり、長いリストがログに記録されます。これを回避するには、r.encoding='utf-8'にアクセスする前に、ログレベルを高く設定するか(INFOなど)、エンコーディング(r.textなど)を指定します。

1
kooooq

私があなたの質問を正しく理解しているかどうかわからないのですが、なぜこのメッセージを別のログレベルに分けられないのですか。

0
Deva