基于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编写检测数据库SA用户的方法
Jul 11 Python
python生成随机mac地址的方法
Mar 16 Python
python使用calendar输出指定年份全年日历的方法
Apr 04 Python
Python线程的两种编程方式
Apr 14 Python
Python使用sorted排序的方法小结
Jul 28 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
利用Python将数值型特征进行离散化操作的方法
Nov 06 Python
python实现诗歌游戏(类继承)
Feb 26 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
Oct 30 Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 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
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
Symfony核心类概述
2016/03/17 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
vue生命周期实例小结
2018/08/15 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
python关于变量名的基础知识点
2020/03/03 Python
python爬取代理ip的示例
2020/12/18 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
AVIS安飞士奥地利租车官网:提供奥地利、欧洲和全世界汽车租赁
2016/11/29 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
婚庆公司计划书
2014/09/15 职场文书
关于保护环境的建议书
2019/06/24 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
Python之基础函数案例详解
2021/08/30 Python