Metadata-Version: 1.1
Name: rfc5424-logging-handler
Version: 0.1.0
Summary: A more up-to-date, RFC5424-Compliant syslog handler for the Python logging framework
Home-page: https://github.com/jobec/rfc5424-logging-handler
Author: Joris Beckers
Author-email: joris.beckers@gmail.com
License: BSD
Download-URL: https://pypi.python.org/pypi/rfc5424-logging-handler
Description: Python rfc5424 syslog logging handler
        =====================================
        
        .. image:: https://img.shields.io/pypi/v/rfc5424-logging-handler.svg
            :target: https://pypi.python.org/pypi/rfc5424-logging-handler
        .. image:: https://travis-ci.org/jobec/rfc5424-logging-handler.svg?branch=master
            :target: https://travis-ci.org/jobec/rfc5424-logging-handler
        .. image:: https://codecov.io/github/jobec/rfc5424-logging-handler/coverage.svg?branch=master
            :target: https://codecov.io/github/jobec/rfc5424-logging-handler?branch=master
        
        A more up-to-date, `RFC 5424 <https://tools.ietf.org/html/rfc5424>`_ compliant syslog handler for the Python logging framework
        
        * Free software: BSD License
        * Homepage: https://github.com/jobec/rfc5424-logging-handler
        
        Features
        --------
        
        * `RFC 5424 <https://tools.ietf.org/html/rfc5424>`_ Compliant
        * No need for complicated formatting strings
        
        Installation
        ------------
        
        Python package::
        
            pip install rfc5424-logging-handler
        
        
        Usage
        -----
        
        After installing you can use this package like this:
        
        .. code-block:: python
        
            import logging
            from rfc5424logging import Rfc5424SysLogHandler
        
            logger = logging.getLogger('syslogtest')
            logger.setLevel(logging.INFO)
        
            sh = Rfc5424SysLogHandler(address=('10.0.0.1', 514))
            logger.addHandler(sh)
        
            msg_type = 'interesting'
            logger.info('This is an %s message', msg_type)
        
        This will send the following message to the syslog server::
        
            <14>1 2020-01-01T05:10:20.841485+01:00 myserver syslogtest 5252 - - This is an interesting message
        
        
        Full blown example:
        
        .. code-block:: python
        
            import logging
            from rfc5424logging import Rfc5424SysLogHandler
        
            logger = logging.getLogger('syslogtest')
            logger.setLevel(logging.INFO)
        
            sh = Rfc5424SysLogHandler(
                address=('10.0.0.1', 514),
                hostname="overridden_server_name",
                appname="my_wonderfull_app",
                procid=555,
                structured_data={'sd_id_1': {'key1': 'value1'}},
                enterprise_id=32473
            )
            logger.addHandler(sh)
        
            msg_type = 'interesting'
            extra = {
                'msgid': 'some_unique_msgid',
                'structured_data': {
                    'sd_id2': {'key2': 'value2', 'key3': 'value3'}
                }
            }
            logger.info('This is an %s message', msg_type, extra=extra)
        
        That will send the following message to the syslog server::
        
            <14>1 2020-01-01T05:10:20.841485+01:00 overridden_server_name my_wonderfull_app 555 some_unique_msgid [sd_id_1@32473 key1="value1"][sd_id2@32473 key3="value3" key2="value2"] This is an interesting message
        
        There's also an `LoggerAdapter` subclass available that makes it more easy to send structured data or a message ID with every message
        
        .. code-block:: python
        
            import logging
            from rfc5424logging import Rfc5424SysLogHandler, Rfc5424SysLogAdapter
        
            logger = logging.getLogger('syslogtest')
            logger.setLevel(logging.INFO)
        
            sh = Rfc5424SysLogHandler(address=('10.0.0.1', 514))
            logger.addHandler(sh)
            adapter = Rfc5424SysLogAdapter(logger)
        
            msg_type = 'interesting'
            adapter.info('This is an %s message',
                         msg_type, structured_data={'sd_id2': {'key2': 'value2', 'key3': 'value3'}})
            adapter.info('This is an %s message', msg_type, msgid='some_unique_msgid')
            adapter.info('This is an %s message',
                         msg_type,
                         structured_data={'sd_id2': {'key2': 'value2', 'key3': 'value3'}}, msgid='some_unique_msgid')
        
        
        Changelog
        ---------
        
        0.0.3 (unreleased)
        ~~~~~~~~~~~~~~~~~~
        
        * Adapter class to make it easier to log message IDs or structured data
        * Logging of EMERGENCY, ALERT and NOTICE syslog levels by using the adapter class
        * Extensive test suite
        
        0.0.2 (2017-01-18)
        ~~~~~~~~~~~~~~~~~~
        
        * Introduced Python 2.7 compatibility
        
        0.0.1 (2017-01-11)
        ~~~~~~~~~~~~~~~~~~
        
        * Initial release
        
Keywords: python logging handler syslog rfc5424
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Logging
Classifier: Development Status :: 4 - Beta
