基于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多重继承实例
Oct 11 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
python+Django+apache的配置方法详解
Jun 01 Python
vscode 远程调试python的方法
Dec 01 Python
python实现教务管理系统
Mar 12 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
Pytorch之卷积层的使用详解
Dec 31 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
Python sqlite3查询操作过程解析
Feb 20 Python
如何使用Python实现一个简易的ORM模型
May 12 Python
Python实现老照片修复之上色小技巧
Oct 16 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中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python连接字符串的方法小结
2015/07/13 Python
深入理解Python3中的http.client模块
2017/03/29 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
电子商务应届生自我鉴定
2014/01/13 职场文书
入党积极分子评语
2014/05/04 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
2014年消防工作总结
2014/11/21 职场文书
校运会新闻稿
2015/07/17 职场文书