基于python實現監聽Rabbitmq系統日志代碼示例
介紹
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綁定的多個隊列都有這個消息了。訂閱者就收到這個消息了。’’’
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. css代碼優化的12個技巧2. .NET SkiaSharp 生成二維碼驗證碼及指定區域截取方法實現3. django創建css文件夾的具體方法4. ASP中if語句、select 、while循環的使用方法5. ASP中實現字符部位類似.NET里String對象的PadLeft和PadRight函數6. jsp網頁實現貪吃蛇小游戲7. ASP 信息提示函數并作返回或者轉向8. 存儲于xml中需要的HTML轉義代碼9. MyBatis JdbcType 與Oracle、MySql數據類型對應關系說明10. CentOS郵件服務器搭建系列—— POP / IMAP 服務器的構建( Dovecot )
