基于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脚本对Linux服务器进行监控的教程
Apr 02 Python
简单理解Python中基于生成器的状态机
Apr 13 Python
Python类属性与实例属性用法分析
May 09 Python
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
python爬取网页转换为PDF文件
Jun 07 Python
python中eval与int的区别浅析
Aug 11 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
js parsefloat parseint 转换函数
2010/01/21 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
Node.js事件驱动
2015/06/18 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
Python函数返回值实例分析
2015/06/08 Python
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
儿科护士自我鉴定
2013/10/14 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
人民调解员培训方案
2014/06/05 职场文书
校园文化标语
2014/06/18 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
MySQL 数据 data 基本操作
2022/05/04 MySQL