基于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之玩转字符串(2)更新篇
Sep 28 Python
Python用模块pytz来转换时区
Aug 19 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
Jul 26 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
django连接oracle时setting 配置方法
Aug 29 Python
python3使用GUI统计代码量
Sep 18 Python
python config文件的读写操作示例
Sep 27 Python
Python英文文章词频统计(14份剑桥真题词频统计)
Oct 13 Python
python定时任务 sched模块用法实例
Nov 04 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
python基础教程之获取本机ip数据包示例
2014/02/10 Python
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
Python内存管理实例分析
2019/07/10 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
入党申请人的自我鉴定
2013/12/01 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
入党转正介绍人意见
2015/06/03 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
德生2P3收音机开箱评测
2022/04/30 无线电