用法:
debug(msg, *args, **kwargs)
在此记录器上记录级别为
DEBUG
的消息。msg
是消息格式字符串,args
是使用字符串格式化运算符合并到msg
中的参数。 (请注意,这意味着您可以在格式字符串中使用关键字以及单个字典参数。)当没有提供args
时,不会对msg
执行 % 格式化操作。kwargs
中有四个关键字参数被检查:exc_info
、stack_info
、stacklevel
和extra
。如果
exc_info
未评估为假,则会将异常信息添加到日志消息中。如果提供了异常元组(以sys.exc_info()
返回的格式)或异常实例,则使用它;否则,调用sys.exc_info()
获取异常信息。第二个可选关键字参数是
stack_info
,默认为False
。如果为 true,则将堆栈信息添加到日志消息中,包括实际的日志调用。请注意,这与通过指定exc_info
显示的堆栈信息不同:前者是从堆栈底部到当前线程中的日志调用的堆栈帧,而后者是有关已被调用的堆栈帧的信息在搜索异常处理程序时,在异常之后展开。您可以独立于
exc_info
指定stack_info
,例如仅显示您如何在代码中到达某个点,即使没有引发异常。堆栈帧打印在标题行之后,标题行显示:Stack (most recent call last):
这模仿了显示异常帧时使用的
Traceback (most recent call last):
。第三个可选关键字参数是
stacklevel
,默认为1
。如果大于 1,则在计算为记录事件创建的LogRecord
中设置的行号和函数名称时,会跳过相应的堆栈帧数。这可用于记录助手,以便记录的函数名、文件名和行号不是助手函数/方法的信息,而是其调用者的信息。此参数的名称反映了warnings
模块中的等效名称。第四个关键字参数是
extra
,它可用于传递一个字典,该字典用于填充为具有用户定义属性的日志事件创建的LogRecord
的__dict__。然后可以随意使用这些自定义属性。例如,它们可以合并到记录的消息中。例如:FORMAT = '%(asctime)s %(clientip)-15s %(user)-8s %(message)s' logging.basicConfig(format=FORMAT) d = {'clientip': '192.168.0.1', 'user': 'fbloggs'} logger = logging.getLogger('tcpserver') logger.warning('Protocol problem: %s', 'connection reset', extra=d)
会打印类似的东西
2006-02-08 22:20:02,165 192.168.0.1 fbloggs Protocol problem: connection reset
extra
中传递的字典中的键不应与日志记录系统使用的键发生冲突。 (有关日志记录系统使用哪些 key 的更多信息,请参阅Formatter
文档。)如果您选择在记录的消息中使用这些属性,则需要格外小心。例如,在上面的示例中,
Formatter
已使用格式字符串设置,该格式字符串在LogRecord
的属性字典中需要 ‘clientip’ and ‘user’。如果缺少这些,则不会记录该消息,因为会发生字符串格式异常。所以在这种情况下,您总是需要使用这些键传递extra
字典。虽然这可能很烦人,但此函数旨在用于特殊情况,例如在许多上下文中执行相同代码的多线程服务器,并且出现的有趣条件取决于此上下文(例如远程客户端 IP 地址和经过身份验证的用户名,在上面的示例中)。在这种情况下,专门的
Formatter
可能会与特定的Handler
一起使用。在 3.2 版中更改:
stack_info
添加了参数。在 3.5 版中更改:
exc_info
参数现在可以接受异常实例。在 3.8 版中更改:
stacklevel
添加了参数。
相关用法
- Python logging.LogRecord用法及代码示例
- Python logging.handlers.SocketHandler.makePickle用法及代码示例
- Python logging.debug用法及代码示例
- Python PIL logical_and() and logical_or()用法及代码示例
- Python PIL logical_xor() and invert()用法及代码示例
- Python log10()用法及代码示例
- Python locals()用法及代码示例
- Python list remove()用法及代码示例
- Python len()用法及代码示例
- Python numpy string less_equal()用法及代码示例
- Python calendar leapdays()用法及代码示例
- Python ldexp()用法及代码示例
- Python list copy()用法及代码示例
- Python list转string用法及代码示例
- Python lzma.LZMACompressor()用法及代码示例
- Python Functools lru_cache()用法及代码示例
- Python linecache.getline()用法及代码示例
- Python scipy linalg.pinv2用法及代码示例
- Python list insert()用法及代码示例
- Python lists转XML用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 logging.Logger.debug。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。