异步log"丢失"之谜

       前段时间,需要修复线上数据,于是写了类似这样一个程序:

func main(){
	
	for i := 0; i < 10000000; i++ {
		// fix users' data
		log.Infof("fix details")
        totalInfo += "xxx"
	}

    log.Infof("total info is %s", totalInfo)  // 太长了
	return
}

     结果,在进程执行完毕后(用ps确认了),没看到最后一行那个log.  非常纳闷, 以为是中途哪一步卡住了。

     然后,半分钟后, 文件中终于有最后那行log了。 原来, 在刷磁盘呢。

      

发布了2222 篇原创文章 · 获赞 4663 · 访问量 1995万+

猜你喜欢

转载自blog.csdn.net/stpeace/article/details/102830881