我最近阅读了有关结构化日志记录 (here) 的内容。这个想法似乎不是通过将简单的字符串作为一行附加到日志文件来记录,而是通过 JSON 对象来记录。这使得通过自动工具分析日志文件成为可能。
Python 的 logging
库可以进行结构化日志记录吗?如果没有,是否有针对它的“主流”解决方案(例如像 numpy/scipy 是科学计算的主流解决方案)?我找到了 structlog
,但我不确定它有多普遍。
最佳答案
您是否看过 python docs site section describing Implementing structured logging,它解释了如何将 python
内置记录器用于结构化日志记录?
下面是上面网站上列出的一个简单示例。
import json
import logging
class StructuredMessage(object):
def __init__(self, message, **kwargs):
self.message = message
self.kwargs = kwargs
def __str__(self):
return '%s >>> %s' % (self.message, json.dumps(self.kwargs))
m = StructuredMessage # optional, to improve readability
logging.basicConfig(level=logging.INFO, format='%(message)s')
logging.info(m('message 1', foo='bar', bar='baz', num=123, fnum=123.456))
这会产生以下日志。
message 1 >>> {"fnum": 123.456, "num": 123, "bar": "baz", "foo": "bar"}
希望这对您有所帮助。
关于python - Python的标准库可以做结构化日志记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48170682/