これは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、その無効なログ形式の設定。