サブモジュールでログレベル文字列が正しくありません

HFBrowning

私は標準ライブラリのログモジュールを使用していますが、説明できないことがありました。つまり、サブモジュールからロガーを取得すると、WARNINGログレベルに関係なく、ロガーのレベルに関連付けられた文字列が表示されます。実際にに設定されます。さらに紛らわしいことに、サブモジュールロガーは正しいレベルでメッセージをログに記録します。main.py以下を実行すると(最初にログファイル名を変更する)、私が何を意味するかがわかります。コンソールはWARNINGother_moduleのロガーレベルがそうであることを出力しますが、下位レベルのメッセージを忠実に記録します。

何かのレベルに関連付けられた文字列が必要です。この動作はバグですか、それとも私は何かを誤解していますか?

main.py

import logging
import other_module

def create_logger(log_level):
    level = log_level.upper()
    switcher = {"DEBUG": logging.DEBUG,
                "INFO": logging.INFO,
                "WARNING": logging.WARNING,
                "ERROR": logging.ERROR,
                "CRITICAL": logging.CRITICAL}
    logging.basicConfig(filename='C:/logs/log.log', #Change this
                        format="%(asctime)s | %(name)s [Line %(lineno)d] | %(levelname)s: %(message)s",
                        datefmt="%m/%d/%Y %H:%M:%S",
                        level=switcher[level])
    logger = logging.getLogger("root")
    return logger

def main():
    log = create_logger('DEBUG')
    log.debug("Message from main")
    other_module.test_function()

if __name__ == '__main__':
    main()

other_module.py

import logging
log = logging.getLogger(__name__)
print("other_module log level is {}".format(logging.getLevelName(log.getEffectiveLevel())))

def test_function():
    log.debug('Message from other_module')
bohrax

これはother_module.py、ロギングシステムが構成される前にがロードされ、そのロガーがデフォルト値を使用してインスタンス化されるためです。

ロギングレベルのbasicConfig電話をかけるimport other_moduleと、意図したとおりになります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

モジュールのインポートが正しくありません

分類Dev

Python3のマルチプロセッシングモジュールのジェダイの完了が正しくありません

分類Dev

テーブルの列幅が正しくありません

分類Dev

テーブルの列幅が正しくありません

分類Dev

Terraformエラー:subnet_idsvpcモジュールの属性値タイプが正しくありません

分類Dev

サブプロセスモジュールは機能しますが、正確には機能しません

分類Dev

パスは正しいようですが、レイジーモジュールが見つかりません

分類Dev

gitがサブモジュール内でインデックスを見つけられませんでした(「インデックスファイルを開くことができませんでした:ディレクトリではありません」)

分類Dev

ImportError:WindowsArcGISサブディレクトリにモジュール名PyPdf2python2.7.13がありません

分類Dev

pytorchカスタムレイヤーは「モジュールサブクラスではありません」

分類Dev

PythonサブモジュールはPython 3.7では正しくインポートされますが、3.6ではインポートされません

分類Dev

CSSを使用したテーブルのスタイリング:列幅が正しくありません

分類Dev

ネイティブモジュールがnativescriptで正しく機能していません

分類Dev

cv2モジュールのcap.get(7)関数によって返されるフレームの総数が正しくありません

分類Dev

Laravel / Quarxログイン認証ルートが正しくありません

分類Dev

ベクトルのメモリ割り当てが正しくありません

分類Dev

Xcode:検証中にアーカイブのバンドルIDとプロビジョニングプロファイルが正しくありません

分類Dev

Google Cast Chromecast SDKメッセージの形式が正しくありません(レベルの値がありません)

分類Dev

サブモジュールではないパスの.gitmoduleにサブモジュールマッピングが見つかりません

分類Dev

モジュールは利用できませんが、正しいモジュール名でロードしてください

分類Dev

グーグルコラボでオブジェクト検出モデルをトレーニングしている間、モジュール名のデプロイエラーはありません

分類Dev

Herokuでエラー「ImportError:モジュール名がありません」を取得していますが、ローカルではありません

分類Dev

グループの平均が正しくありません

分類Dev

グループの行番号が正しくありません

分類Dev

テーブル名が正しくありません

分類Dev

Pythonモジュールランダムには、ローカルサーバーでは機能する属性の選択肢はありませんが、ライブサーバーでは機能しません

分類Dev

メッセージ102、レベル15、状態1、行1「日付」の近くの構文が正しくありません。updaeクエリで

分類Dev

バックボーンコレクションのモデル-オブジェクトの構造が正しくありませんか?

分類Dev

AWS Xray SDK:boto3を使用してサービスグラフを抽出する必要があります。「TypeError: 'モジュール'オブジェクトは呼び出し可能ではありません」というエラーが表示されます。

Related 関連記事

  1. 1

    モジュールのインポートが正しくありません

  2. 2

    Python3のマルチプロセッシングモジュールのジェダイの完了が正しくありません

  3. 3

    テーブルの列幅が正しくありません

  4. 4

    テーブルの列幅が正しくありません

  5. 5

    Terraformエラー:subnet_idsvpcモジュールの属性値タイプが正しくありません

  6. 6

    サブプロセスモジュールは機能しますが、正確には機能しません

  7. 7

    パスは正しいようですが、レイジーモジュールが見つかりません

  8. 8

    gitがサブモジュール内でインデックスを見つけられませんでした(「インデックスファイルを開くことができませんでした:ディレクトリではありません」)

  9. 9

    ImportError:WindowsArcGISサブディレクトリにモジュール名PyPdf2python2.7.13がありません

  10. 10

    pytorchカスタムレイヤーは「モジュールサブクラスではありません」

  11. 11

    PythonサブモジュールはPython 3.7では正しくインポートされますが、3.6ではインポートされません

  12. 12

    CSSを使用したテーブルのスタイリング:列幅が正しくありません

  13. 13

    ネイティブモジュールがnativescriptで正しく機能していません

  14. 14

    cv2モジュールのcap.get(7)関数によって返されるフレームの総数が正しくありません

  15. 15

    Laravel / Quarxログイン認証ルートが正しくありません

  16. 16

    ベクトルのメモリ割り当てが正しくありません

  17. 17

    Xcode:検証中にアーカイブのバンドルIDとプロビジョニングプロファイルが正しくありません

  18. 18

    Google Cast Chromecast SDKメッセージの形式が正しくありません(レベルの値がありません)

  19. 19

    サブモジュールではないパスの.gitmoduleにサブモジュールマッピングが見つかりません

  20. 20

    モジュールは利用できませんが、正しいモジュール名でロードしてください

  21. 21

    グーグルコラボでオブジェクト検出モデルをトレーニングしている間、モジュール名のデプロイエラーはありません

  22. 22

    Herokuでエラー「ImportError:モジュール名がありません」を取得していますが、ローカルではありません

  23. 23

    グループの平均が正しくありません

  24. 24

    グループの行番号が正しくありません

  25. 25

    テーブル名が正しくありません

  26. 26

    Pythonモジュールランダムには、ローカルサーバーでは機能する属性の選択肢はありませんが、ライブサーバーでは機能しません

  27. 27

    メッセージ102、レベル15、状態1、行1「日付」の近くの構文が正しくありません。updaeクエリで

  28. 28

    バックボーンコレクションのモデル-オブジェクトの構造が正しくありませんか?

  29. 29

    AWS Xray SDK:boto3を使用してサービスグラフを抽出する必要があります。「TypeError: 'モジュール'オブジェクトは呼び出し可能ではありません」というエラーが表示されます。

ホットタグ

アーカイブ