您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用单个文件进行Python日志记录(函数名,文件名,行号)

使用单个文件进行Python日志记录(函数名,文件名,行号)

在这里有一些边际相关的问题。

我将从最简单的开始:(3)。使用,logging您可以将所有调用聚集到一个日志文件或其他输出目标中:它们将按照在处理过程中发生的顺序进行。

接下来:(2)。locals()提供当前范围的指示。因此,在没有其他参数的方法中,您将具有self范围,该范围包含对当前实例的引用。困扰您的技巧是使用字典作为%操作员的RHS的字符串格式。"%(foo)s" % bar将被替换为bar["foo"]is的任何值。

最后,您可以使用一些自省技巧,类似于pdb可以记录更多信息的自省技巧:

def autolog(message):
    "Automatically log the current function details."
    import inspect, logging
    # Get the prevIoUs frame in the stack, otherwise it would
    # be this function!!!
    func = inspect.currentframe().f_back.f_code
    # Dump the message + the name of this function to the log.
    logging.debug("%s: %s in %s:%i" % (
        message, 
        func.co_name, 
        func.co_filename, 
        func.co_firstlineno
    ))

这将记录传入的消息,以及(原始)函数名称,出现定义的文件名以及该文件中的行。看一下检查- 检查活动对象以了解更多详细信息。

正如我在前面的评论中所提到的,您还可以pdb随时通过插入行import pdb; pdb.set_trace()并重新运行程序来进入交互式调试提示符。这使您可以逐步检查代码,并根据需要检查数据。

python 2022/1/1 18:44:24 有305人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶