log丢失之谜

    最近,遇到这样一个问题:

    a文件:

func main(){
	
	log.Infof("begin")
	y := sub(100, 20)
	log.Infof("end, y is %d", y)

	return
}

    b文件:

func sub(x, y int) int {
	
	log.Infof("sub begin")

	return x - y
}

       结果是:

begin

end, y is 80

      奇怪了,怎么没有sub begin呢? 

      其实,这个很正常, log只是辅助, 当log与逻辑出现矛盾时,很有可能是log本身的问题。

      查了下,因为在b文件中import的log和a文件中import的不是同一个包,  这就能解释得通为什么b文件的log没有打印了。

      不同log包混打log, 很容易出现问题, 我有个同事前几天遇到过混打log的问题,程序还莫名其妙panic了, 查了大半天,查到怀疑人生。

      不多说。

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

猜你喜欢

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