基于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 Web服务器Tornado使用小结
May 06 Python
Python中decorator使用实例
Apr 14 Python
Python中字典映射类型的学习教程
Aug 20 Python
Python中with及contextlib的用法详解
Jun 08 Python
python 换位密码算法的实例详解
Jul 19 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
python正则表达式爬取猫眼电影top100
Feb 24 Python
新手常见6种的python报错及解决方法
Mar 09 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
基于python的matplotlib制作双Y轴图
Apr 20 Python
Python 数据可视化之Matplotlib详解
Nov 02 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使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
jquery处理json数据实例分析
2014/06/03 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
jquery实现右键菜单插件
2015/03/29 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
JS中的phototype详解
2017/02/04 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
Django中URLconf和include()的协同工作方法
2015/07/20 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
浅谈Python中的bs4基础
2018/10/21 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
Python socket模块方法实现详解
2019/11/05 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
python3.4中清屏的处理方法
2020/07/06 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
python中xlrd模块的使用详解
2021/02/01 Python
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
简单的JAVA编程面试题
2013/03/19 面试题
中国入世承诺
2014/04/01 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
导游词之四川武侯祠
2019/10/21 职场文书