在Python中,我们可以使用日志库(logging)来记录程序的运行过程
▥Python
𝄐 0
python怎么输出日志,python写日志到文件,python输出日志到界面,python怎么打日志,python打日志,python写日志文件
在Python中,我们可以使用日志库(logging)来记录程序的运行过程。而为了更好地排查问题,我们有时需要在日志中添加一些上下文信息,以便于快速定位问题。
具体实现方式是通过在日志记录时添加自定义的字段(如模块名、函数名等),从而将上下文信息添加到日志中。可以使用 logging.Logger 对象的方法来实现,例如:
python
import logging
# 创建Logger对象和FileHandler对象
logger = logging.getLogger('my_logger')
handler = logging.FileHandler('my_log.txt')
# 设置Formatter格式化器,并将其添加到FileHandler中
formatter = logging.Formatter('%(asctime)s %(levelname)s %(module)s %(funcName)s %(message)s')
handler.setFormatter(formatter)
# 将FileHandler添加到Logger对象中
logger.addHandler(handler)
# 设置日志级别
logger.setLevel(logging.DEBUG)
# 记录日志并添加上下文信息
def foo():
logger.info('This is a message from foo.', extra={'module': 'mymodule', 'funcName': 'foo'})
foo()
上述代码创建了一个名为 my_logger 的 Logger 对象,并使用 FileHandler 将日志写入文件 my_log.txt 中。其中,设置了 Formatter 格式化器,将日志记录输出的格式包括了时间、日志级别、模块名、函数名和消息。
最后,在 foo() 函数中调用 logger.info() 方法记录日志,并使用 extra 参数传递了一个字典,包含了模块名和函数名的信息,从而将这些上下文信息添加到日志中。这样,在日志文件中就能看到类似下面这样的输出:
2022-03-27 18:30:45,668 INFO mymodule foo This is a message from foo.
在Python中,我们可以使用日志库(logging)来记录程序的运行过程。而为了更好地排查问题,我们有时需要在日志中添加一些上下文信息,以便于快速定位问题。
具体实现方式是通过在日志记录时添加自定义的字段(如模块名、函数名等),从而将上下文信息添加到日志中。可以使用 logging.Logger 对象的方法来实现,例如:
python
import logging
# 创建Logger对象和FileHandler对象
logger = logging.getLogger('my_logger')
handler = logging.FileHandler('my_log.txt')
# 设置Formatter格式化器,并将其添加到FileHandler中
formatter = logging.Formatter('%(asctime)s %(levelname)s %(module)s %(funcName)s %(message)s')
handler.setFormatter(formatter)
# 将FileHandler添加到Logger对象中
logger.addHandler(handler)
# 设置日志级别
logger.setLevel(logging.DEBUG)
# 记录日志并添加上下文信息
def foo():
logger.info('This is a message from foo.', extra={'module': 'mymodule', 'funcName': 'foo'})
foo()
上述代码创建了一个名为 my_logger 的 Logger 对象,并使用 FileHandler 将日志写入文件 my_log.txt 中。其中,设置了 Formatter 格式化器,将日志记录输出的格式包括了时间、日志级别、模块名、函数名和消息。
最后,在 foo() 函数中调用 logger.info() 方法记录日志,并使用 extra 参数传递了一个字典,包含了模块名和函数名的信息,从而将这些上下文信息添加到日志中。这样,在日志文件中就能看到类似下面这样的输出:
2022-03-27 18:30:45,668 INFO mymodule foo This is a message from foo.
本文地址:
/show-277109.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。