基于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中list循环语句用法实例
Nov 10 Python
Python实现检测服务器是否可以ping通的2种方法
Jan 01 Python
Python2.x与Python3.x的区别
Jan 14 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 Python
Python面向对象思想与应用入门教程【类与对象】
Apr 12 Python
详解Python学习之安装pandas
Apr 16 Python
基于FME使用Python过程图解
May 13 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
Python selenium爬取微信公众号文章代码详解
Aug 12 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
python pygame入门教程
Jun 01 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
php 文本文件的读取效率
2012/02/10 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
2017/06/01 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
护理人员的自我评价分享
2014/03/15 职场文书
法制宣传月活动方案
2014/05/11 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
民间借贷借条范本
2015/05/25 职场文书
债务追讨律师函
2015/06/24 职场文书
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL