Skip to main content

Syslog client implementation (RFC 3164/RFC 5424) with message transfer from RFC 6587 (Syslog over TCP)

Project description

syslog-py

Syslog client for Python 3 (RFC 3164/5424) for UNIX and Windows (fork from pysyslogclient with more features, fixed bugs and options).

Installation

pip install syslog-py

Description

Syslog client following

with UNIX and Windows support. TCP and UDP transport is possible.

If TCP is used, on every log message that is sent to the specified server, and a connection error occurs, the message will be dismissed, and reconnection will be tried for the next message.

Usage

A small CLI client is implemented in client.py. To call it, run

python -m pysyslogclient.cli

Startup client

To set up the client for RFC5424 over TCP to send to SERVER:PORT:

import pysyslogclient
client = pysyslogclient.SyslogClientRFC5424(SERVER, PORT, proto="TCP")

or for RFC3164:

import SyslogClient
client = pysyslogclient.SyslogClientRFC3164(SERVER, PORT, proto="TCP")

Log a message

Log the message "Hello syslog server" with standard severity INFO as facility USER. As a program name SyslogClient the PID of the called python interpreter is used.

client.log("Hello syslog server")

To specify more options, call log with more arguments. For example to log the message as program Logger with PID 1 as facility SYSTEM with severity EMERGENCY, call log the following way:

client.log("Hello syslog server",
	facility=pysyslogclient.FAC_SYSTEM,
	severity=pysyslogclient.SEV_EMERGENCY,
	program="Logger",
	pid=1)

For TCP protocol, the octet parameter is available in client constructor and in log method. The parameter in log method has precedence over constructor parameter. In case of UDP protocol, octet parameter is ignored.

Below in the first message, octet stuffing is in use, in second octet counting (forced by octet parameter in log method).

import pysyslogclient
client = pysyslogclient.SyslogClientRFC5424(SERVER, 
    PORT, 
    proto="TCP", 
    octet=pysyslogclient.OCTET_STUFFING)

client.log("Hello syslog server",
	facility=pysyslogclient.FAC_SYSTEM,
	severity=pysyslogclient.SEV_EMERGENCY,
	program="Logger",
	pid=1)

client.log("Hello syslog server",
	facility=pysyslogclient.FAC_SYSTEM,
	severity=pysyslogclient.SEV_EMERGENCY,
	program="Logger",
	pid=1,
	octet=pysyslogclient.OCTET_COUNTING)

When octet stuffing in use (for a tcp or udp), the trailer type can be selected by constructor parameter. Applicable to both RFC3164 and RFC5424. Default value is TRAILER_LF

import SyslogClient
client = pysyslogclient.SyslogClientRFC3164(SERVER, 
    PORT, 
    proto="TCP", 
    octet=pysyslogclient.OCTET_STUFFING, 
    trailer=pysyslogclient.TRAILER_CRLF)

For RFC5424, when datetime is given explicitly (in log method parameterd), the is_utc parameter is utilized to determine if given datetime is utc one.

Shutdown

To disconnect, call

client.close()

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

syslog-py-0.2.5.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

syslog_py-0.2.5-py2.py3-none-any.whl (7.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file syslog-py-0.2.5.tar.gz.

File metadata

  • Download URL: syslog-py-0.2.5.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.0

File hashes

Hashes for syslog-py-0.2.5.tar.gz
Algorithm Hash digest
SHA256 a2ad3675185cc8f1952db581cf04512b8d495fa4a9dee5f026147b823e0a667e
MD5 436b2736fbdf925d428550c835cf1410
BLAKE2b-256 53730679e12de995941f05f558fc52c76f1c9a853fea5039f93c2b23a40303f0

See more details on using hashes here.

File details

Details for the file syslog_py-0.2.5-py2.py3-none-any.whl.

File metadata

  • Download URL: syslog_py-0.2.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.0

File hashes

Hashes for syslog_py-0.2.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 539ded62062de6a60f7bf0cd582e3efe5df043c19834594e0737a93ce7764191
MD5 e03db8761bdda3e07086c40c4fcb0925
BLAKE2b-256 46f732f035de9d88ac8f5a383bd774bb140195d8a8fc333b1ab6c572f7cc8749

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