python日志是为grafana loki准备的。

python-logging-loki的Python项目详细描述


python日志loki

PyPI versionPython versionLicense

loki的python日志处理程序。
https://grafana.com/loki

安装

pip install python-logging-loki

用法

importloggingimportlogging_lokihandler=logging_loki.LokiHandler(url="https://my-loki-instnace/api/prom/push",tags={"application":"my-app"},auth=("username","password"),)logger=logging.getLogger("my-logger")logger.addHandler(handler)logger.error("Something happened",extra={"tags":{"service":"my-service"}},)

上面的示例将与这些标签一起发送Something happened消息:

  • 处理程序中的默认标签
  • 消息级别为serverity
  • 记录器的名称为logger
  • 来自tags项目的标签extradict

给定的示例是阻塞(即每个呼叫将等待消息发送)。
但是您可以使用内置的QueueHandlerQueueListener在单独的线程中发送消息。

importlogging.handlersimportlogging_lokifromqueueimportQueuequeue=Queue(-1)handler=logging.handlers.QueueHandler(queue)handler_loki=logging_loki.LokiHandler(url="https://my-loki-instnace/api/prom/push",tags={"application":"my-app"},auth=("username","password"),)logging.handlers.QueueListener(queue,handler_loki)logger=logging.getLogger("my-logger")logger.addHandler(handler)logger.error(...)

或者可以使用LokiQueueHandler快捷方式,它将自动创建侦听器和处理程序。

importlogging.handlersimportlogging_lokifromqueueimportQueuehandler=logging_loki.LokiQueueHandler(Queue(-1),url="https://my-loki-instnace/api/prom/push",tags={"application":"my-app"},auth=("username","password"),)logger=logging.getLogger("my-logger")logger.addHandler(handler)logger.error(...)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java这种src与构建树时间戳的比较如何更快?   java如何在两个命令处理程序之间通信   java下拉框值更改   Java如何从另一个类中提取字段的值   无字段名的java Jackson序列化   java游戏循环和方法调用   java Spring Security permitAll()匹配器被忽略   java如何在一个方法中将数组中的int作为单独的int传递?   使用ArrayList在Java中实现同步队列   java JButton的操作侦听器在JTable中不工作   java中C++ OOP指针的技巧   java My regex搜索只打印出最后一个匹配项   java如何在Hadoop中序列化非常大的可写对象   spring Paypal JavaSDK支付执行问题   带有SPNEGO SSO的java Tomcat 6仍会提示输入登录名和密码   java HttpResponse主体正在更改   java如何在RxJava中实现链锁   为什么我需要java。lang.ClassNotFoundException:com。mysql。希杰。jdbc。mysqlconnectorjava8时的驱动程序。0.16.jar在类路径中?   java输入错误。即使在接受新输入后仍使用旧输入