log 如何定位写日志的文件
屏幕快照 2019-08-20 下午8.30.01
我简单的封装了下golang自带的log方法, 然后写个test:
屏幕快照 2019-08-20 下午8.31.16
然后日志打印结果:
屏幕快照 2019-08-20 下午8.31.50
实际我想要的是, test文件写的错误日志, 那么日志信息中的文件应该定位到file_test这个文件才对, 封装了下难道就获取不到最初调用日志记录的文件嘛
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
golang的日志包中,打印日志文件的方法最终调用的是:
这里调用了
std.Output
,且第一个参数为调用栈的深度。这里传入了2,正好是Println
和Output
这两次调用的深度。而你代码中对此又封装了两层,导致获取的最终调用位置是错误的。你可以直接对
Output
方法再次封装,传入合适的调用深度,就能返回正确的文件了。你Error函数里面的实现,是获取当前代码的文件的行数吧,不是获取的调用当前函数的文件和行数