可通过环境变量配置的下拉式记录器
app-logger的Python项目详细描述
应用程序记录器
这是一个使用python-json-logger将json适当地记录到stdout和stderr的drop-in记录器。调试和信息转到stdout,WARNING,ERROR,CRITICAL转到stderr。在
配置
所有配置都是通过环境变量进行的,所有配置都有默认值,因此不需要任何配置。在
记录器姓名
记录器应该被称为什么?默认值将使用根记录程序。使用默认的or root
不仅会记录来自app_logger
的语句,而且还会记录来自正在使用的库中的任何语句。
Format:只是一个常规字符串
Default:root
示例:mysweetapp
日志级别
用于设置日志级别。可用于设置任何日志级别,以便有选择地控制日志记录。可以是大写或小写。
Format:键=值对的逗号分隔字符串
Default:root=INFO
Example:root=DEBUG,asyncio=INFO
日志格式
用于控制日志格式。 Format:日志格式字符串log record attributesDefault:`%(levelname)%(name)%(asctime)%(模块)%(funcName)%(lineno)%(消息)``
使用
记录器初始化自身并使其自身作为名为app_logger
的变量可用。它是一个常规的python记录器,可以这样使用。
Exampleapp_logger.info("I always hated python logging but now it's easy and just works")
结果日志{"levelname": "INFO", "name": "root", "asctime": "2020-04-11 11:24:17,299", "module": "main", "funcName": "main", "lineno": 14, "message": "I always hated python logging but now it's easy and just works"}
添加上下文
您可以使用pythonjson logger的extra=
特性向消息添加上下文。如果你能很容易地在日志中搜索和分析。
Example
如果你有一个字典,你可以把它包含在日志语句中,而不需要冗长的字符串格式。
app_logger.error('Error handling message', extra=message)
结果日志{"levelname": "ERROR", "name": "root", "asctime": "2020-04-11 11:27:36,584", "module": "main", "funcName": "main", "lineno": 16, "message": "Error handling message", "guid": "7cc81eba-3bbc-4555-8fab-2a7556072f5d", "subject": "test"}
您可以看到在kibana中找到这样的日志是多么容易,而且它已经是json格式,所以很容易索引/搜索,包括通过extra=
给出的上下文
- 项目
标签: