基于python實現(xiàn)監(jiān)聽Rabbitmq系統(tǒng)日志代碼示例
介紹
rabbitmq默認有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)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. php bugs代碼審計基礎(chǔ)詳解2. html小技巧之td,div標簽里內(nèi)容不換行3. xml中的空格之完全解說4. ASP中解決“對象關(guān)閉時,不允許操作。”的詭異問題……5. XML入門的常見問題(四)6. ASP中if語句、select 、while循環(huán)的使用方法7. ASP使用MySQL數(shù)據(jù)庫的方法8. ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗分享9. WMLScript的語法基礎(chǔ)10. msxml3.dll 錯誤 800c0019 系統(tǒng)錯誤:-2146697191解決方法
