【发布时间】:2018-02-12 02:49:56
【问题描述】:
我正在使用 24/7 运行的 python 2.7 脚本,我希望在每次执行循环时由日志记录模块生成不同的日志文件。每个文件的时间戳都有文件名以避免混淆。
到目前为止,我得到了:
def main():
while True:
datetimenow = datetime.datetime.now().strftime("%Y-%m-%d-%H:%M:%S")
logging.basicConfig(format='%(asctime)s %(levelname)-8s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S', filename="logs/" + datetimenow + '.log',
level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler())
# ... start of action
if __name__ == "__main__":
main()
这会产生一个文件,当循环再次启动时,它不会关闭并打开一个新文件。
此外,控制台输出似乎是双重打印的,因为每行输出到控制台两次。
有解决这些问题的想法吗?
【问题讨论】:
-
Martijn Pieters 发布了一些关于关闭日志文件处理程序的内容:stackoverflow.com/a/15474586/1513933
-
你到底想要什么?你想让它从原来的位置继续,还是你想在每个循环中都有一个新文件?因为您根据现在的日期时间给出
finename!当然,每一秒你都会有一个新文件。 -
@Moher :我希望在每个循环上都有一个新文件来继续/启动新的日志记录序列
标签: python python-2.7 logging