import Public.Protocols; int main() { object input = Stdio.UDP(); input->bind(1515); input->set_nonblocking(syslog_packet); return -1; } void syslog_packet(mapping packet) { packet += Syslog.decode(packet->data); write("%O\n", packet); } Output is: ([ /* 8 elements */ "data": "<86>Oct 12 17:17:01 fido CRON[3720]: pam_unix(cron:session): session closed for user root\n", "facility": 10, "host": "fido", "ip": "127.0.0.1", "message": "CRON[3720]: pam_unix(cron:session): session closed for user root\n", "port": 33075, "severity": 6, "timestamp": "Oct 12 17:17:01" ])