屏幕快照 2019-08-20 下午8.30.01
我简单的封装了下golang自带的log方法, 然后写个test:
屏幕快照 2019-08-20 下午8.31.16
然后日志打印结果:
屏幕快照 2019-08-20 下午8.31.50
实际我想要的是, test文件写的错误日志, 那么日志信息中的文件应该定位到file_test这个文件才对, 封装了下难道就获取不到最初调用日志记录的文件嘛
屏幕快照 2019-08-20 下午8.30.01
我简单的封装了下golang自带的log方法, 然后写个test:
屏幕快照 2019-08-20 下午8.31.16
然后日志打印结果:
屏幕快照 2019-08-20 下午8.31.50
实际我想要的是, test文件写的错误日志, 那么日志信息中的文件应该定位到file_test这个文件才对, 封装了下难道就获取不到最初调用日志记录的文件嘛
4 回答968 阅读
2 回答617 阅读
2 回答494 阅读
golang的日志包中,打印日志文件的方法最终调用的是:
这里调用了
std.Output,且第一个参数为调用栈的深度。这里传入了2,正好是Println和Output这两次调用的深度。而你代码中对此又封装了两层,导致获取的最终调用位置是错误的。你可以直接对
Output方法再次封装,传入合适的调用深度,就能返回正确的文件了。