基于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 splitlines使用技巧
Sep 06 Python
python使用mailbox打印电子邮件的方法
Apr 30 Python
Python找出文件中使用率最高的汉字实例详解
Jun 03 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
python super的使用方法及实例详解
Sep 25 Python
python如何获取apk的packagename和activity
Jan 10 Python
PyTorch实现AlexNet示例
Jan 14 Python
python实现npy格式文件转换为txt文件操作
Jul 01 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
Python面试不修改数组找出重复的数字
May 20 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下关于中英数字混排的字符串分割问题
2010/04/06 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
javascript smipleChart 简单图标类
2011/01/12 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
python dataframe 输出结果整行显示的方法
2018/06/14 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
python集合的创建、添加及删除操作示例
2019/10/08 Python
python Tensor和Array对比分析
2020/01/08 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
党员培训思想汇报
2014/01/07 职场文书
迟到检讨书500字
2014/02/05 职场文书
干部鉴定材料
2014/05/18 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
Python音乐爬虫完美绕过反爬
2021/08/30 Python