用于增强aws lambda日志的Nanolib
项目描述
为在python运行时环境中运行的aws lambda提供更好的日志记录,具有高度意见的JSON格式化,以简化任何日志系统的解析。
使用方法
import aws_lambda_logging
def handler(event, context):
aws_lambda_logging.setup(level='DEBUG')
...
您可以单独设置Boto的日志级别(默认与同一级别相同)
import aws_lambda_logging
def handler(event, context):
aws_lambda_logging.setup(level='DEBUG', boto_level='CRITICAL')
...
您可以为每次日志记录添加关键字参数,例如lambda请求ID。
import aws_lambda_logging
def handler(event, context):
aws_lambda_logging.setup(level='DEBUG',
aws_request_id=context.get('aws_request_id'))
log.debug('Just a try!')
...
它将输出JSON格式的消息
{
"level": "DEBUG",
"timestamp": "2016-10-03 13:27:57,438",
"apigw_request_id": "323fee86-896d-11e6-b7fd-2d914ea80962",
"location": "root.handler:6",
"message": "Just a try!"
}
您可以输入一个JSON字符串
log.debug('{"Details": [1,2,3]}')
它将输出包含正确嵌入的JSON字符串的JSON格式的消息
{
"level": "DEBUG",
"timestamp": "2016-10-03 13:27:57,438",
"apigw_request_id": "323fee86-896d-11e6-b7fd-2d914ea80962",
"location": "root.handler:6",
"message": {
"Details": [
1,
2,
3
]
}
}
您可以输入一个字典
log.debug({"Details": [1,2,3]})
它将输出包含字典值的JSON格式的消息
{
"level": "DEBUG",
"timestamp": "2016-10-03 13:27:57,438",
"apigw_request_id": "323fee86-896d-11e6-b7fd-2d914ea80962",
"location": "root.handler:6",
"message": {
"Details": [
1,
2,
3
]
}
}
任何可以序列化为JSON的值都将被强制转换为字符串。此行为可以通过将格式化函数解析到 json_default 关键字参数来更改。