基于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 相关文章推荐
在Django的session中使用User对象的方法
Jul 23 Python
Python3实现购物车功能
Apr 18 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
python交易记录整合交易类详解
Jul 03 Python
Python generator生成器和yield表达式详解
Aug 08 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
PyTorch中反卷积的用法详解
Dec 30 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
Selenium常见异常解析及解决方案示范
Apr 10 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优化那些事(经验分享)
2014/11/27 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
详解Python的Lambda函数与排序
2016/10/25 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
python英语单词测试小程序代码实例
2019/09/09 Python
python字符串下标与切片及使用方法
2020/02/13 Python
python实现UDP协议下的文件传输
2020/03/20 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
python 如何将office文件转换为PDF
2020/09/22 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
经典公益广告词
2014/03/13 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
同学联谊会邀请函
2019/06/24 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书