Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Remote syslog client.
- https://csl.name/post/python-syslog-client/
- Works by sending UDP messages to a remote syslog server. The remote server
- must be configured to accept logs from the network.
- License: PUBLIC DOMAIN
- Author: Christian Stigen Larsen
- For more information, see RFC 3164.
- """
- import socket
- class Facility:
- "Syslog facilities"
- KERN, USER, MAIL, DAEMON, AUTH, SYSLOG, \
- LPR, NEWS, UUCP, CRON, AUTHPRIV, FTP = range(12)
- LOCAL0, LOCAL1, LOCAL2, LOCAL3, \
- LOCAL4, LOCAL5, LOCAL6, LOCAL7 = range(16, 24)
- class Level:
- "Syslog levels"
- EMERG, ALERT, CRIT, ERR, \
- WARNING, NOTICE, INFO, DEBUG = range(8)
- class Syslog:
- """A syslog client that logs to a remote server.
- Example:
- >>> log = Syslog(host="foobar.example")
- >>> log.send("hello", Level.WARNING)
- """
- def __init__(self,
- host="localhost",
- port=514,
- facility=Facility.DAEMON):
- self.host = host
- self.port = port
- self.facility = facility
- self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- def send(self, message, level):
- "Send a syslog message to remote host using UDP."
- data = "<%d>%s" % (level + self.facility*8, message)
- self.socket.sendto(data, (self.host, self.port))
- def warn(self, message):
- "Send a syslog warning message."
- self.send(message, Level.WARNING)
- def notice(self, message):
- "Send a syslog notice message."
- self.send(message, Level.NOTICE)
- def error(self, message):
- "Send a syslog error message."
- self.send(message, Level.ERR)
- # ... add your own stuff here
- port = 514
- log = Syslog("172.24.106.1")
- log.port = 512
- log.send("howdy", Level.WARNING)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement