python - logging.basicConfig形式のパラメータが無効です

これはPythonコードを言っています

インポートスレッド
 インポート時間
 インポート要求
 から小数インポート進数、ROUND_DOWN
 インポートログ
 インポートのOS
 インポートsysが
 インポートランダムから utilsのインポート共通のフィルタを、キャッシュ
 からのコンフィグは、インポート設定

logging.basicConfig(レベル = logging.INFO、フォーマット= ' %(levelname)Sを%(いるasctime)S [行:%(LINENO)D]%(メッセージ)S '

 

どんなににbasicConfigが値に設定する方法、ことわざを参照してください、その後、効果を取ることができなかった:にbasicConfig関数を呼び出す前に、他のパッケージのインポートので、他のバッグとインポートloggingパッケージながら、失敗したにbasicConfigを設定するに至っていません調査し、実際に共通キャッシュバッグとインポートログ。

次のようにコード・シーケンスをトリミング:

インポートのOS
 インポートsysが
 インポートランダム
 インポートスレッド
 インポート時間
 インポート要求
 から小数インポート進数、ROUND_DOWN
 インポートログ
logging.basicConfig(レベル = logging.INFO、フォーマット= ' %(LINENO):%(levelname)S%(いるasctime)S [ラインD]%(メッセージ)S ' 

THIS_DIR = os.path.abspath(os.path.dirname(__FILE__ ))
sys.path.append(os.path.join(THIS_DIR、' .. ' ))
 から utilsのインポート普通、フィルタ、キャッシュ
 からのconfigs のインポート設定

確かに、それが有効になります。

 

調査では、「にbasicConfig関数を呼び出す前に、他のパッケージのインポートは、他のバッグとインポートloggingパッケージながら、失敗したセットにbasicConfigにつながっているので、」この文は十分ではありません、 "あるべきの輸入ので、にbasicConfig関数を呼び出す前に、他のパッケージ、他のバッグとインポートloggingパッケージしばらく、またとにbasicConfig機能と呼ばれるが、失敗したにbasicConfigの設定につながります。」

なぜ?basicConfigソースの場合:

デフにbasicConfig(** kwargsから):
    _acquireLock()
    してみてください場合 lenは(root.handlers)== 0:
            ファイル名 = kwargs.get(" ファイル名" の場合、ファイル名:
                モード = kwargs.get(" ファイルモード"' ' 
                hdlr = のFileHandler(ファイル名、モード)
             
                ストリーム = kwargs.get(" ストリーム" 
                hdlr= StreamHandlerは(ストリーム)
            FS = kwargs.get(" フォーマット" 、BASIC_FORMAT)
            DFS = kwargs.get(" datefmt " 、なし)
            FMT = フォーマッタ(FS、DFS)
            hdlr.setFormatter(FMT)
            root.addHandler(hdlr)
            レベル = kwargs.get(" レベル" 場合にはレベルがありません ではないなし:
                root.setLevel(レベル)
    、最後に
        _releaseLock()

(root.handlers)を、他の場所で、それは現在のファイル内にbasicConfig機能と呼ばれ、その後にbasicConfig時間を呼んだので、あなたは、LEN(root.handlers)の長さは、もはや0であることがわかりませんので、lenの場合はリードを取ることはありません== 0、その無効なログ形式の設定。

 

おすすめ

転載: www.cnblogs.com/hf8051/p/11727520.html