ydf0509 / nb_log

pip install nb_log 各种日志handler和自动转化项目的任意print的效果。日志自动彩色炫酷,可点击控制台的日志自动精确跳转到pycharm的文件和行号。文件日志多进程切割安全。在10个最重要方面全方位超过loguru
389 stars 73 forks source link

Linux下设置按天划分,日志文件里没记录内容 #51

Closed tuonisitake closed 1 year ago

tuonisitake commented 1 year ago

导入 logger = LogManager('mylog').get_logger_and_add_handlers(log_path='./logs',log_filename='mylog.log',log_file_handler_type=2)

ydf0509 commented 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

image

ydf0509 commented 1 year ago

image

重写close方法,将程序结束前瞬间缓冲的flush写入文件

ydf0509 commented 1 year ago

你for循环100次, time.sleep(1) logger.error() ,就会发现顶多只有最后一条会丢失写入文件了。如果你要写入最后一条可以看git更新。