针对AWS Lambda的超级有见解的结构化日志记录器
项目描述
简介,其中包含意见
Cazoo-Logger是为Python在AWS Lambda上使用的深度有见解的结构化日志记录器。
Cazoo-Logger对aws_lambda_logger有一定的借鉴,后者较少有见解,可能更适合您的特定用例。去看看。
基本用法
Cazoo Logger模块公开了一个单例函数 config,用于设置日志记录器的使用。
>>> import cazoo_logger >>> cazoo_logger.config()
默认情况下,此配置将根日志记录器设置为INFO级别,写入特殊的JSON格式化程序。
要获取日志记录器实例,请使用适当的fromContext函数调用您的传入事件和上下文
>>> def handler(event, context): ... logger = cazoo_logger.fromContext(event, context) ... logger.info('sup?') ...
这将生成格式良好的JSON消息,具有文档化的架构。
{ "msg": "sup?", "context": { "request_id": "abc123", "function": {"name": "do-things", "version": "0.1.2.3"}, "sns": { "id": "66591d01-0241-5751-bb17-586e5a6dcf91", "topic": "arn:aws:sns:us-east-1:12345678912:bucket-o-stuff", "type": "Notification", "subject": "Amazon S3 Notification", }, } }
如果您没有AWS上下文和事件,您可以使用无上下文的日志记录器进行构建
>>> logger = cazoo_logger.empty()
记录错误
记录捕获的错误非常简单,只需在日志调用上设置exc_info kwarg为True。
>>> try: ... raise ValueError("What in the heck do you call that?") ... except: ... logger.warn("I dunno man, looks pretty sketchy to me", exc_info=True) ... {"msg": "I dunno man, looks pretty sketchy to me", "data": {"error": {"name": "ValueError", "message": "What in the heck do you call that?", "stack": "Traceback (most recent call last):\n File \"<stdin>\", line 2, in <module>\nValueError: What in the heck do you call that?"}}}
记录附加数据
您可能希望将额外的结构化数据包含在日志中。传递给 extra kwarg 的任何值都将被序列化为日志行的 data 部分。
>>> logger.info("I did a query", extra={'sql': {'query': 'select * from table where field = ?', 'parameters': [123] }}) {"msg": "I did a query", "data": {"sql": {"query": "select * from table where field = ?", "parameters": [123]}}}
您还可以使用 with_data 方法。此方法返回一个新的日志记录器实例,其中数据部分已预先填充。
>>> new_logger = logger.with_data(sql={'query': 'select * from foo where bar = ?', 'parameters':[234]}) >>> new_logger.debug('doin a query') {"msg": "doin a query", "data": {"sql": {"query": "select * from foo where bar = ?", "parameters": [234]}}} >>> new_logger.error('oh noes! the query did not work!') {"msg": "oh noes! the query did not work!", "data": {"sql": {"query": "select * from foo where bar = ?", "parameters": [234]}}}
记录附加上下文
同样,您可能还想将更多数据添加到日志事件的上下文部分。
>>> new_logger = logger.with_context(request_id='abc-123') >>> new_logger.info('handling request') {"msg": "handling request", "context": {"request_id": "abc-123"}}
附加日志级别
add_logging_level 函数允许您向记录器添加自定义日志级别。例如,可以将“TRACE”级别添加到15,以提供在DEBUG和INFO之间的日志级别。
项目详情
关闭
cazoo_logger-0.11.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a8cd3a76f112a5af66bf7efa41dab4fa7c8669b6aef0923a5a750a837ac4e88d |
|
MD5 | 1ea0a3305a0f47ab5d14e6c963be5428 |
|
BLAKE2b-256 | decc359015c50eebf7992ca13149fbd5ada15c512f1b622e8113d06edd77aa24 |