Skip to content

Instantly share code, notes, and snippets.

@dirkakrid
Created June 13, 2017 09:58
Show Gist options
  • Save dirkakrid/269e934df435d0b7952ec86fc60fd1b3 to your computer and use it in GitHub Desktop.
Save dirkakrid/269e934df435d0b7952ec86fc60fd1b3 to your computer and use it in GitHub Desktop.
Postfix log parser to json, just queue-id, message-id and status with remote server response.
#!/usr/bin/env python
'''
This program is free software. It comes without any warranty, to
the extent permitted by applicable law. You can redistribute it
and/or modify it under the terms of the Do What The Fuck You Want
To Public License, Version 2, as published by Sam Hocevar. See
http://www.wtfpl.net/ for more details.
'''
import re
import json
maillog = open("the-file.log","r")
regex = re.compile("\s([A-Z0-9]{10}):.*(status|message-id)=(.+)\s", re.M)
mailinfo = {}
for line in maillog:
reobj = regex.search(line,)
if reobj:
if mailinfo.has_key(reobj.group(1)):
mailinfo[reobj.group(1)].update({reobj.group(2): reobj.group(3)})
else:
mailinfo[reobj.group(1)] = {reobj.group(2): reobj.group(3)}
maillog.close()
print json.dumps(mailinfo)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment