最近,遇到这样一个问题:
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了, 查了大半天,查到怀疑人生。
不多说。