Skip to main content

An up-to-date, RFC5424-Compliant syslog handler for the Python logging framework

Project description

Documentation Status https://img.shields.io/pypi/v/rfc5424-logging-handler.svg https://img.shields.io/pypi/pyversions/rfc5424-logging-handler.svg https://travis-ci.org/jobec/rfc5424-logging-handler.svg?branch=master https://codecov.io/github/jobec/rfc5424-logging-handler/coverage.svg?branch=master

An up-to-date, RFC 5424 compliant syslog handler for the Python logging framework.

Features

  • RFC 5424 Compliant.

  • Python Logging adapter for easier sending of rfc5424 specific fields.

  • No need for complicated formatting strings.

Installation

Python package:

pip install rfc5424-logging-handler

Usage

After installing you can use this package like this:

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)

logger.info('This is an interesting message', extra={'msgid': 'some_unique_msgid'})

This will send the following message to the syslog server:

<14>1 2020-01-01T05:10:20.841485+01:00 myserver syslogtest 5252 some_unique_msgid - \xef\xbb\xbfThis is an interesting message

Note the UTF8 Byte order mark (BOM) preceding the message. While required by RFC 5424 section 6.4 if the message is known to be UTF-8 encoded, there are still syslog receivers that cannot handle it. To bypass this limitation, when initializing the handler Class, set the msg_as_utf8 parameter to False like this:

sh = Rfc5424SysLogHandler(address=('10.0.0.1', 514), msg_as_utf8=False)

For more examples, have a look at the documentation

Changelog

1.2.1 - 2018/09/21

Fixed

  • #21 Registered structured data IDs where also suffixed with an enterprise ID.

Added

  • #22 Add utc_timestamp parameter to allow logging in UTC time.

1.1.2 - 2018/02/03

Fixed

  • #15 When logging to /dev/log with python 2.7, the connection was permanently lost when the local syslog server was restarted.

  • #16 The extra info of a message did not overwrite that of the logging adapter instance.

1.1.1 - 2017/12/08

Fixed

  • #14 Fixed handling of extra parameter in logging adapter.

1.1.0 - 2017/11/24

Added

  • The msg parameter for the logger handler can now be absent allowing “structured data only” messages.

Fixed

  • Correct the automatic value of the hostname when the value is anything other then NILVALUE

  • The syslog message is now empty in conformance with RFC5424 when it’s value is None or an empty string.

1.0.3 - 2017/10/08

No functional changes. Only documentation was changed.

Added

  • Logstash configuration example for RFC5424.

Changed

  • Moved most of the documentation out of the readme file.

1.0.2 - 2017/08/31

Fixed

1.0.1 - 2017/08/30

Added

  • #12: It’s now possible to send syslog messages as MSG-ANY which suppresses the UTF-8 byte order mark (BOM) when sending messages.

1.0.0 - 2017/05/30

Changed

  • #10: Procid, appname and hostname can now be set per message, both with the handler as well as with the adapter

0.2.0 - 2017/01/27

Fixed

  • Better input handling

  • Better sanitizing of invalid input

0.1.0 - 2017/01/22

Added

  • #4: 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

Added

  • #5 Introduced Python 2.7 compatibility

0.0.1 - 2017/01/11

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rfc5424-logging-handler-1.2.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rfc5424_logging_handler-1.2.1-py2.py3-none-any.whl (13.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file rfc5424-logging-handler-1.2.1.tar.gz.

File metadata

  • Download URL: rfc5424-logging-handler-1.2.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.17.3 setuptools/36.3.0 requests-toolbelt/0.8.0 tqdm/4.14.0 CPython/3.5.3

File hashes

Hashes for rfc5424-logging-handler-1.2.1.tar.gz
Algorithm Hash digest
SHA256 1ab343e1ee3639251d6b5dfd4db2e614f056b068c148a172314486804aac2c7d
MD5 63e4611ef087242a7eddd413061d1ce0
BLAKE2b-256 836324917eb510caeedda7dc128a53823815693483878f459391c95546325952

See more details on using hashes here.

File details

Details for the file rfc5424_logging_handler-1.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: rfc5424_logging_handler-1.2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.17.3 setuptools/36.3.0 requests-toolbelt/0.8.0 tqdm/4.14.0 CPython/3.5.3

File hashes

Hashes for rfc5424_logging_handler-1.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f51dd80c2606fec874f871ed4b920c4087d4308064d2a138b8d55808d4987dce
MD5 5dccbbbfaf6dd8084093082494624090
BLAKE2b-256 5a11e40be5b3f0d999261a1a920fc475bb9c7be454f7a378f0119107bb52a672

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page