Giter Club home page Giter Club logo

pysyslogclient's Introduction

pysyslogclient

Syslog client for Python 3 (RFC 3164/5424) for UNIX and Windows

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 send to the specified server, and a connection error occured, the message will be dismissed and a reconnect 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 setup the client for RFC 5424 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 messsage

Log the message "Hello syslog server" with standard severity INFO as facility USER. As 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 a 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)

Shutdown

To disconnect, call

client.close()

pysyslogclient's People

Contributors

aboehm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pysyslogclient's Issues

Timestamp logic does not correctly handle datetime objects with tzinfo

The log function accepts a timestamp param which, if not provided, will get automatically populated with a UTC-based timestamp of the current time (via the datetime2rfc3339 function). If, however, the user provides this param with a datetime object, then any attached tzinfo is ignored, and that object is only correctly handled if the timestamp is in the recent past (less than 30 minutes ago).

If one provides a timestamp which is further in the past than a half hour from the current time, then an incorrect timezone offset is calculated, effectively making the timestamp itself incorrect in the resulting syslog message header.

If one replaces the contents of datetime2rfc3339 with return dt.isoformat(), I believe this will always produce a valid syslog timestamp (compared against the RFC document).

TCP port encoding

Hello,
I am new to writing syslogs from python to remote server running on TCP port. When I try to send the messages the string encoding is doesn't seems to be right. Thank you so much for the wonderful library. I was hoping that you can point me to right direction as the messages prints clearly on UDP port when observed using tcpdump.

Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.