Python 如何获取此文件外部的第一个堆栈帧
我正在用python编写一些自定义日志代码。我想找出调用我的日志函数的函数的行号和文件名,同时忽略当前模块中的任何调用 我的第一次尝试是这样的:Python 如何获取此文件外部的第一个堆栈帧,python,path,stack-trace,Python,Path,Stack Trace,我正在用python编写一些自定义日志代码。我想找出调用我的日志函数的函数的行号和文件名,同时忽略当前模块中的任何调用 我的第一次尝试是这样的: def _make_line_log_message(self, level, message): stack = inspect.stack() for frame_record in stack: frame, filename, line, function, src_context, src_context_li
def _make_line_log_message(self, level, message):
stack = inspect.stack()
for frame_record in stack:
frame, filename, line, function, src_context, src_context_line = frame_record
if filename == __file__: # This doesn't work
continue
do_my_logging(filename, line, message)
break
但是inspect.stack()
中的文件名使用了文件的完整路径,而\uuuu file\uuuu
只是没有路径的文件名。如何获取当前文件的文件名,使其匹配inspect.stack()
?os.path.realpath(\uuu file\uuu)
是否始终与inspect.stack()
的文件名格式完全匹配,还是有更好的方法