我正在尝试写入一个单独的日志文件,该文件是使用 basicConfig 在循环内创建的。到目前为止,我设法只创建了一个包含所有后续日志调用的日志文件。我在这里错过了一些微不足道的事情吗?我检查了文档,它有关于文件模式的提示,但没有别的。
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()
这也只会创建带有来自第二次迭代的日志条目的 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()
不知道我做错了什么,任何帮助将不胜感激。干杯