基于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中threading模块join函数用法实例分析
Jun 04 Python
python爬虫实例详解
Jun 19 Python
python调用外部程序的实操步骤
Mar 04 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
三个python爬虫项目实例代码
Dec 28 Python
Python面向对象中类(class)的简单理解与用法分析
Feb 21 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
Django模板获取field的verbose_name实例
May 19 Python
Python 发送SMTP邮件的简单教程
Jun 24 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
给海燕B411配件机起死回生配上件
2021/03/02 无线电
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
PHP多维数组排序array详解
2017/11/21 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
pygame实现五子棋游戏
2019/10/29 Python
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
科室工作个人总结的自我评价
2013/10/29 职场文书
物理系毕业生自荐信
2013/11/01 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
毕业生就业协议书
2014/04/11 职场文书
5s推行计划书
2014/05/06 职场文书
职业规划实施方案
2014/06/10 职场文书
售后客服个人自我评价
2014/09/14 职场文书
支行行长岗位职责
2015/02/15 职场文书
大学学生会辞职信
2015/05/13 职场文书
vue 实现上传组件
2021/05/31 Vue.js
总结Python连接CS2000的详细步骤
2021/06/23 Python