## `pysyslog.py` A UDP server listens at 0.0.0.0:514 for syslog messages. ``` import logging import socketserver host = "0.0.0.0" port = 514 mfmt = '%(asctime)s:%(levelname)s:%(name)s:%(pathname)s:%(lineno)d:%(message)s' dfmt = '%Y-%m-%d %H:%M:%S' logfile = 'syslogmsg.log' logging.basicConfig( level=logging.INFO, format=mfmt, datefmt=dfmt, filename=logfile, filemode='w' ) class SyslogUDPHandler(socketserver.DatagramRequestHandler): def handle(self): data = self.request[0].decode('utf-8') print(f'{self.client_address[0]}: {data}') if __name__ == "__main__": try: print(f'UDPServer is listening on {host}:{port}') server = socketserver.UDPServer((host, port), SyslogUDPHandler) server.serve_forever(poll_interval=0.5) except (IOError, SystemExit): raise except KeyboardInterrupt: print ("Crtl+C Pressed. Shutting down.") ``` --- ## `syslogmsg_gen.py` Send syslog message to local syslog server via 127.0.0.1:514 ```Python import logging import logging.handlers host = "127.0.0.1" port = 514 mfmt = '%(asctime)s:%(levelname)s:%(name)s:%(pathname)s:%(lineno)d:%(message)s' dfmt = '%Y-%m-%d %H:%M:%S' logfile = 'syslogmsg.log' fh = logging.FileHandler(logfile, mode='w') fh.setLevel(logging.INFO) fh.setFormatter(logging.Formatter(mfmt)) dh = logging.handlers.DatagramHandler(host, port) dh.setLevel(logging.INFO) dh.setFormatter(logging.Formatter(mfmt)) logger = logging.getLogger('simple_ex') logger.addHandler(fh) logger.addHandler(dh) logger.debug ('Debug message') logger.info ('Info message') logger.warning ('Warn message') logger.error ('Error message') logger.critical('Critical message') ``` ## Error: ``` Exception has occurred: UnicodeDecodeError 'utf-8' codec can't decode byte 0xd7 in position 381: invalid continuation byte File "C:\pysyslog.py", line 21, in handle data = self.request[0].decode('utf-8') File "C:\pysyslog.py", line 28, in server.serve_forever(poll_interval=0.5) ```