如何解决在 Python 中,如何记录完整的模块路径、类和函数名称?
在 Python 中,如何记录完整的模块路径、类和函数名称?例如:
src/my_package/my_module.py
import logging
logging.basicConfig(format='%(levelname)s | ??? | %(message)s',level=logging.DEBUG)
class MyClass:
def my_function(self):
logging.debug('msg')
预期产出
DEBUG | my_package.my_module.MyClass.my_function | msg
我知道 %(pathname)s
说明符,这不是我想要的。
解决方法
想出了一个对我的用例来说足够好的解决方法:
import logging
logging.basicConfig(format='%(levelname)s | %(message)s',level=logging.DEBUG)
class MyClass:
def my_function(self):
log_path = f'{__name__}.{MyClass.__name__}.{MyClass.my_function.__name__}'
logging.debug(f'{log_path} | msg')
缺点是我必须在要登录的每个函数的开头构建 log_path
并将其作为消息的一部分传递。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。