logging

您所在的位置:网站首页 readinglog中文 logging

logging

2024-05-16 01:37| 来源: 网络整理| 查看: 265

在此记录器上记录 DEBUG 级别的消息。 msg 是消息格式字符串,而 args 是用于字符串格式化操作合并到 msg 的参数。(请注意,这意味着您可以在格式字符串中使用关键字以及单个字典参数。)当未提供 args 时,不会对 msg 执行 % 格式化操作。

在 kwargs 中会检查四个关键字参数: exc_info ,stack_info ,stacklevel 和 extra 。

如果 exc_info 的求值结果不为 false ,则它将异常信息添加到日志消息中。如果提供了一个异常元组(按照 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

在The keys in the dictionary passed in extra 传入的字典的键不应与日志系统所使用的键相冲突。 (请参阅 LogRecord 属性 一节了解有关日志系统所使用的键的



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3