基于python實現(xiàn)監(jiān)聽Rabbitmq系統(tǒng)日志代碼示例
介紹
rabbitmq默認(rèn)有7個交換機,其中amq.rabbitmq.log為系統(tǒng)日志的交換機,這個日志為topic類型,會有三個等級的(routing_key)的日志發(fā)送到這個交換機上。
代碼如下
#!/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()’’’然后發(fā)布者只需要給exchange發(fā)送消息,然后exchange綁定的多個隊列都有這個消息了。訂閱者就收到這個消息了。’’’
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Java發(fā)送http請求的示例(get與post方法請求)2. 基于android studio的layout的xml文件的創(chuàng)建方式3. Java之JSP教程九大內(nèi)置對象詳解(中篇)4. 詳解CSS不定寬溢出文本適配滾動5. CSS自定義滾動條樣式案例詳解6. 基于python計算滾動方差(標(biāo)準(zhǔn)差)talib和pd.rolling函數(shù)差異詳解7. Python如何向SQLServer存儲二進制圖片8. 詳解Python中openpyxl模塊基本用法9. python numpy實現(xiàn)rolling滾動案例10. python opencv 實現(xiàn)讀取、顯示、寫入圖像的方法
