python - 日志中的自定义 Logger 类和正确的行号/函数名称

标签 python logging

我想将 Python 记录器包装在一个自定义类中,以嵌入一些特定于应用程序的功能,并向开发人员隐藏设置细节(设置文件输出、日志记录级别等)。为此,我创建了一个具有以下 API 的类:

__init__(log_level, filename)
debug(msg)
info(msg)
warning(msg)
error(msg)

Logger.debug/info/warning/etc 调用通常在日志中写入进行日志调用的函数和行号。但是,使用我的自定义类,写入日志文件的函数和行号始终相同(对应于自定义类中的 debug()/info()/warning()/error() 函数)。我希望它保存记录消息的应用程序代码行。这可能吗?

提前致谢。

最佳答案

是:sys._getframe(NUM)其中 NUM 表示您正在寻找的当前函数之外有多少函数。返回的框架对象具有类似 f_lineno 的属性和 f_code.co_filename .

http://docs.python.org/library/sys.html#sys._getframe

关于python - 日志中的自定义 Logger 类和正确的行号/函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12980512/

相关文章:

sql-server - ReportServer执行日志查看2个月前

logging - 日志消息风格指南

python - 你能给我一个在 Django 中使用基于类的 View 的 Mixins 的例子吗?有什么用处?

java - 执行 "sbt run"时,没有通过 scalalogging 显示任何信息消息

python - 如何根据Python中的列标题值选择excel列

python - 替换现有大文件中的字符

tomcat - 在哪里检查tomcat中的servlet异常

java - 在 Eclipse 项目中存储日志文件?

python - Django Rest 框架 JWT

python - 我是否可以在 python 中从 Online SVN 访问文件?