basicConfig を使用してループ内で作成された別のログ ファイルに書き込もうとしています。これまでのところ、後続のすべてのログ呼び出しを含むログ ファイルを 1 つだけ作成することができました。ここで些細なことを見逃していますか?ファイルモードに関するヒントが含まれているドキュメントを確認しましたが、他には何もありませんでした。
import logging
class MultipleInstancesStarter:
def __init__(self):
pass
def startMany(self):
objs = [Main(str(i)) for i in xrange(1, 10)]
print objs
for obj in objs:
obj._start()
class Main:
def __init__(self, i):
self.index = i
def _start(self):
name = self.index
logging.basicConfig(
filename="log_" + name + ".log",
filemode="w",
format="%(asctime)s - %(levelname)s - %(filename)s:%(module)s:%(lineno)d - %(message)s",
level=logging.DEBUG)
logging.debug("%s Message Debug" % name)
logging.info("%s Message Info" % name)
logging.error("%s Message Error" % name)
if __name__ == '__main__':
MultipleInstancesStarter().startMany()
これにより、2 回目の反復からのログ エントリを含む log_1.log のみが作成されます。ループの外側にオブジェクトを作成しようとしましたが、以下に示すように問題なく別のファイルが作成されます。
def startMany(self):
obj2 = Main("sample")
obj2._start()
objs = [Main(str(i)) for i in xrange(1, 10)]
print objs
for obj in objs:
obj._start()
私が間違っていることはわかりませんが、助けていただければ幸いです。乾杯