屏幕快照 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这个文件才对, 封装了下难道就获取不到最初调用日志记录的文件嘛
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
1 回答1.5k 阅读
golang的日志包中,打印日志文件的方法最终调用的是:
这里调用了
std.Output
,且第一个参数为调用栈的深度。这里传入了2,正好是Println
和Output
这两次调用的深度。而你代码中对此又封装了两层,导致获取的最终调用位置是错误的。你可以直接对
Output
方法再次封装,传入合适的调用深度,就能返回正确的文件了。