用于将日志发送到logmatic.io的python插件
logmatic-python的Python项目详细描述
logmatic python
指向logmatic.io文档的链接:http://doc.logmatic.io/docs/python
python帮助程序将日志发送到logmatic.io。
它主要包含一个合适的json格式化程序和一个套接字处理程序 将日志直接流到logmatic.io-因此不需要使用日志传送程序 如果你不想的话。
先决条件
要安装此库,请使用以下命令:
pip install logmatic-python
用法
使用json格式化程序
要使用json格式化程序,只需将其与任何处理程序(如 这里是streamhandler。
importlogmaticimportlogginglogger=logging.getLogger()handler=logging.StreamHandler()handler.setFormatter(logmatic.JsonFormatter(extra={"hostname":socket.gethostname()}))logger.addHandler(handler)logger.setLevel(logging.INFO)
完成此设置后,任何子记录器都将使用此配置 (例如logging.getlogger("my_logger"))。如你所见,你可以 将任何额外信息与基本格式化程序关联,如 主机名或任何您需要的环境变量,具体取决于 用法。
test_logger=logging.getLogger("test")test_logger.info("classic message",extra={"special":"value","run":12})
返回以下格式:
{"asctime":"2016-02-16T09:51:31Z","name":"test","processName":"MainProcess","filename":"write_in_console.py","funcName":"<module>","levelname":"INFO","lineno":20,"module":"write_in_console","threadName":"MainThread","message":"classic message","special":"value","run":12,"timestamp":"2016-02-16T09:51:31Z","hostname":"<your_hostname>"}
让我们花点时间来了解我们拥有的:
- 默认格式为“%(asctime)%(name)%(processname)%(filename) %(函数名)%(级别名)%(行号)%(模块)%(线程名) %(消息)“。所以这就是为什么所有这些属性都存在于 日志事件。如果需要较少的格式,可以在 定义格式化程序:logmatic.JsonFormatter(fmt="",...)
- 这里的hostname属性一直按原样添加 在根记录器上定义。
- special和run属性被专门添加到 此日志事件。
很高兴知道,异常的回溯完全封装在 json事件。这将禁止处理多行格式:
{..."exc_info":"Traceback (most recent call last):\n File \"test/write_in_console.py\", line 24, in exception_test\n raise Exception('test')\nException: test",...}
流日志直接到logmatic.io
logmatichandler可以与jsonformatter耦合,如下所示:
importlogmaticimportlogginglogger=logging.getLogger()handler=logmatic.LogmaticHandler("<your_api_key>")handler.setFormatter(logmatic.JsonFormatter(extra={"hostname":socket.gethostname()}))logger.addHandler(handler)logger.setLevel(logging.INFO)
别忘了用你的航海日志上提供的那一个来代替。 站台。
使用此配置,任何来自python应用程序的日志 将被发送到您的平台,并将执行与 在上一节中描述。
如果您想在这个工具集中添加更多内容,请与我们联系!