現在、私はより大きなプログラムを試しています。コードに印刷物を追加するのではなく、ロギング モジュールを使用したいと考えています。でも最初は落ちました。私は 2 ページのプログラムを持っていて、できる限り単純なログ記録を追加しましたが、うまくいきませんでした。それで、私は例を実行しました、そしてそれはうまくいきました。次に、コードを停止する原因が見つかるまで、コードを 1 行ずつサンプルに落とし込みました。ほぼ空のモジュールを 1 回簡単にインポートすると、適切なロギング動作が停止します。
# import ntu.dummy
import logging
LOG_FILENAME = 'example_15.log'
print 'before basicconfig'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)
print 'before log write'
logging.debug('This message should go to the log file')
print 'after log write'
# import ntu.dummy を使用すると、プログラムが実行され、デバッグが出力され、予想される内容の .log ファイルがプログラムのフォルダーに保存されます。これは、IDLE 内から、または OS 内で直接当てはまります。
import ntu.dummy の実行を許可するために # を削除すると、プログラムが実行され、デバッグが出力されますが、.log ファイルはプログラムのフォルダーにも、マシン上の他の場所にも AFAICS に作成されません。
C:\Python26\Lib\ntu\ には __init__.py が含まれており、このファイルの dummy.py の内容は ...
def bolleaux():
""" empty function """
return None
import ntu.dummy ステートメントの代わりに、ランダム、Tkinter、os.path など、あらゆる種類の他のインポートを使用できます。これにより、ロギングが失敗することはありません。
助けてください、何が起こっているのですか?