基于python实现监听Rabbitmq系统日志代码示例


Posted in Python onNovember 28, 2020

介绍

rabbitmq默认有7个交换机,其中amq.rabbitmq.log为系统日志的交换机,这个日志为topic类型,会有三个等级的(routing_key)的日志发送到这个交换机上。

代码如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import pika
# ########################### 订阅者 ###########################
credentials = pika.PlainCredentials("用户名","密码")
connection = pika.BlockingConnection(pika.ConnectionParameters(
  'ip',
  5672,
  '/',
  credentials=credentials))

channel = connection.channel()


# 声明队列
channel.queue_declare(queue='info_queue',durable=True)
channel.queue_declare(queue='error_queue',durable=True)
channel.queue_declare(queue='warning_queue',durable=True)

# 绑定
channel.queue_bind(exchange='amq.rabbitmq.log',queue="info_queue",routing_key="info")
channel.queue_bind(exchange='amq.rabbitmq.log',queue="error_queue",routing_key="error")
channel.queue_bind(exchange='amq.rabbitmq.log',queue="warning_queue",routing_key="warning")

print(' [*] Waiting for logs. To exit press CTRL+C')

def callback(ch, method, properties, body):
  print(" [x] %r" % body)
  print(" [x] Done")
  ch.basic_ack(delivery_tag=method.delivery_tag)

channel.basic_consume("info_queue",callback,auto_ack=False)
channel.basic_consume("error_queue",callback,auto_ack=False)
channel.basic_consume("warning_queue",callback,auto_ack=False)

channel.start_consuming()
'''
然后发布者只需要给exchange发送消息,然后exchange绑定的多个队列都有这个消息了。订阅者就收到这个消息了。
'''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现TCP服务器端与客户端的方法详解
Apr 30 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
Python对List中的元素排序的方法
Apr 01 Python
pandas数值计算与排序方法
Apr 12 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
Python3中_(下划线)和__(双下划线)的用途和区别
Apr 26 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
初学者学习Python好还是Java好
May 26 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
Python WSGI 规范简介
Apr 11 Python
Python Http请求json解析库用法解析
Nov 28 #Python
基于Django集成CAS实现流程详解
Nov 28 #Python
Django haystack实现全文搜索代码示例
Nov 28 #Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 #Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 #Python
Python self用法详解
Nov 28 #Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 #Python
You might like
php 文件上传类代码
2011/08/06 PHP
PHP使用递归生成文章树
2015/04/21 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
vant自定义二级菜单操作
2020/11/02 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
Python松散正则表达式用法分析
2016/04/29 Python
Python之str操作方法(详解)
2017/06/19 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
Python进行特征提取的示例代码
2020/10/15 Python
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
军训生自我鉴定范文
2013/12/27 职场文书
教师读书活动总结
2014/05/07 职场文书
顶岗实习计划书
2015/01/16 职场文书
个人培训总结
2015/03/05 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS