

.. _sphx_glr_auto_examples_network_logio.py:


=============
Log.io Module
=============

A module to send live log messages to a log.io server.



.. code-block:: python


    # Author: Tamas Gal <tgal@km3net.de>
    # License: MIT
    import socket
    import time

    from km3pipe import Pipeline, Module
    from km3pipe.pumps import CHPump


    class LogIO(Module):
        def configure(self):
            url = 'pi2089.physik.uni-erlangen.de'
            port = 28777

            self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            self.sock.connect((url, port))

        def process(self, blob):
            tag = str(blob['CHPrefix'].tag)
            data = blob['CHData']
            log_level = 'info'
            if "ERROR" in data:
                log_level = 'error'
            if "WARNING" in data:
                log_level = 'warning'
            source = "Other"
            if " F0" in data:
                source = "DataFilter"
            if " Q0" in data:
                source = "DataQueue"
            if " W0" in data:
                source = "DataWriter"
            self.sock.send("+log|{0}|Portopalo DAQ|{1}|{2}\r\n"
                           .format(source, log_level, data))
            return blob

        def finish(self):
            self.sock.close()


    pipe = Pipeline()
    pipe.attach(CHPump, host='127.0.0.1',
                        port=5553,
                        tags='MSG',
                        timeout=60*60*24,
                        max_queue=500)
    pipe.attach(LogIO)
    pipe.drain()

**Total running time of the script:** ( 0 minutes  0.000 seconds)



.. container:: sphx-glr-footer


  .. container:: sphx-glr-download

     :download:`Download Python source code: logio.py <logio.py>`



  .. container:: sphx-glr-download

     :download:`Download Jupyter notebook: logio.ipynb <logio.ipynb>`

.. rst-class:: sphx-glr-signature

    `Generated by Sphinx-Gallery <https://sphinx-gallery.readthedocs.io>`_
