Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mrjohannchang/mqtthandler.py

A Python logging handler using MQTT protocol
https://github.com/mrjohannchang/mqtthandler.py

library logging mqtt python

Last synced: 1 day ago
JSON representation

A Python logging handler using MQTT protocol

Awesome Lists containing this project

README

        

MQTTHandler
===========

A Python logging handler using MQTT protocol.

Installation
------------

.. code:: sh

pip install mqtthandler

Example usage
-------------

.. code:: py

import mqtthandler
import logging
import time

mqtthdlr = mqtthandler.MQTTHandler('server.mqtt.com', 'topic/test')
mqtthdlr.setLevel(logging.INFO)

logger = logging.getLogger()
logger.addHandler(mqtthdlr)
logger.setLevel(logging.INFO)

logging.info('test') # Automatically connecting to the MQTT broker if not connected (equal to loop_start()) and sending log message to MQTT broker
logging.info('test 2')

# Wait for log being sent to the MQTT broker
while True:
time.sleep(1)

# You will only see
# test 2
# on the broker if QoS = 0.

MQTTHandler will not wait for connected, you have to do it yourself.
E.g.

.. code:: py

mqtthdlr.loop_start() # Manually connect to the MQTT server
import time; time.sleep(3) # A dirty way to wait for MQTT connected
logging.info('test') # send log message to MQTT broker

MQTTHandler will create a thread to maintain the connection
(automatically reconnecting if disconnected) itself. This will make your
program never exit. You have to terminate MQTTHandler yourself to stop
the MQTTHandler thread.

.. code:: py

mqtthdlr.loop_stop() # Stop MQTT thread

API
---

MQTTHandler
~~~~~~~~~~~

Constructor
^^^^^^^^^^^

::

MQTTHandler(host, topic, port=1883, keepalive=60, bind_address='', client_id='', clean_session=True, userdata=None, protocol=mqttc.MQTTv311, qos=0, retain=False)

Reference to `paho.mqtt.python`_.

Methods
^^^^^^^

::

loop_start()

::

loop_stop()

::

max_inflight_messages_set(inflight)

::

message_retry_set(retry)

::

tls_set(ca_certs, certfile=None, keyfile=None, cert_reqs=ss.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLSv1, ciphers=None)

::

tls_insecure_set(value)

::

username_pw_set(username, password)

::

user_data_set(userdata)

::

will_set(topic, payload=None, qos=0, retain=False)

Reference to `paho.mqtt.python`_.

.. _paho.mqtt.python: https://github.com/eclipse/paho.mqtt.python/blob/master/README.rst