基于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编写爬虫的基本模块及框架使用指南
Jan 20 Python
Python中运算符"=="和"is"的详解
Oct 08 Python
python定向爬取淘宝商品价格
Feb 27 Python
python的pandas工具包,保存.csv文件时不要表头的实例
Jun 14 Python
对Python中数组的几种使用方法总结
Jun 28 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
Pytorch: 自定义网络层实例
Jan 07 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
详解python tkinter 图片插入问题
Sep 03 Python
什么是Python包的循环导入
Sep 08 Python
python re的findall和finditer的区别详解
Nov 15 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 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之第一天
2006/10/09 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
php实现文章评论系统
2019/02/18 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
jQuery 一个图片切换的插件
2011/10/09 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
jquery+css实现下拉列表功能
2017/09/03 jQuery
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Python判断telnet通不通的实例
2019/01/26 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
500行python代码实现飞机大战
2020/04/24 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
上课说话检讨书大全
2014/01/22 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
律师函格式范本
2015/05/27 职场文书
小平您好观后感
2015/06/09 职场文书