我们直接使用log
logging的原理机制是在进程全部结束后才会随之结束
那么对于不同文件内容写入不同的log的时候
就会出现 前面的log内容越来越多 的问题
这个时候查阅了blog发现没有人解决这个问题去看官方文档
logging.shutdown()
Informs the logging system to perform an orderly shutdown by flushing and closing all handlers. This should be called at application exit and no further use of the logging system should be made after this call.
for foo in range(0, 10):
file_name = "./out/k" + str(foo) + ".log"
logger = logging.getLogger() # 实例化一个logger对象
logger.setLevel(logging.DEBUG) # 设置初始显示级别
# 创建一个文件句柄
file_handle = logging.FileHandler(file_name, encoding="UTF-8", mode='w')
# 创建一个流句柄
# stream_handle = logging.StreamHandler()
# 创建一个输出格式
fmt = logging.Formatter(f"{'-' * 40}\n"
"> %(asctime)s - %(levelname)s - %(filename)s - "
"[line:%(lineno)d] -"
" %(message)s\n",
datefmt="%a, %d %b %Y"
"%H:%M:%S"
)
file_handle.setFormatter(fmt) # 文件句柄设置格式
# stream_handle.setFormatter(fmt) # 流句柄设置格式
logger.addHandler(file_handle) # logger对象绑定文件句柄
# 打印
logging.info(" process " + str(foo))
logging.shutdown()
logging.
shutdown
()¶
通过刷新和关闭所有处理程序来通知日志记录系统执行有序的关闭。这应该在应用程序出口处调用,并且在此调用之后不应进一步使用日志记录系统。
这样就解决了log无法关闭不停续写的问题