xlua的代码里在使用的日志打印的时候会用print来进行,但是print仅仅是打印输入的数据,而没有对应的文件名信息和行号,如果文件比较多,日志也比较多的话,就会觉得很麻烦。
lua提供了调试类debug,可以获取堆栈等信息,我们可以利用这个类来进行文件名和行号的获取,然后将文件名和行号一起传过去进行打印。设定一定的规范,然后利用前面的文章所讲的日志重定向,在控制台双击日志的时候进行自动打开文件和跳转到指定行号。
首先,我们需要将原来的print函数保存下来
local rawPrint = print;
然后利用debug获取我们想要的信息
local info = debug.getinfo(2,"Sl");
关于getinfo的参数,大家可以查阅相关文档,这条语句执行完后我们就可以拿到文件名info.source和行号info.currentline了,然后我们重新组织字符串,调用我们存下来的print语句传入