Closed tuonisitake closed 1 year ago
from nb_log import get_logger
logger = get_logger('mylog',log_filename='mylog2.log',log_file_handler_type=2)
for i in range(100):
logger.error(f'testss {i}')
# time.sleep(1)
你自己试试就知道了,如果你不for循环, 直接 logger.error(f'testss')代码很快就结束的话,就不会写入文件了,因为是为了性能,写入时间间隔是有一段缓冲,
只要你的代码不是迅速1毫秒就结束的话,就会写入文件的。真实的场景一般是代码长期运行不会丢失的,如果你不在乎频繁写入文件的性能,想微秒级实时写入,那就可以在1043行加个flush
重写close方法,将程序结束前瞬间缓冲的flush写入文件
你for循环100次, time.sleep(1) logger.error() ,就会发现顶多只有最后一条会丢失写入文件了。如果你要写入最后一条可以看git更新。
导入 logger = LogManager('mylog').get_logger_and_add_handlers(log_path='./logs',log_filename='mylog.log',log_file_handler_type=2)