Skip to content

Instantly share code, notes, and snippets.

@phonglh79
Forked from hreeder/parser.py
Created January 6, 2021 08:35
Show Gist options
  • Save phonglh79/1c2da1d6ea626cc9e08c61200a5dda6f to your computer and use it in GitHub Desktop.
Save phonglh79/1c2da1d6ea626cc9e08c61200a5dda6f to your computer and use it in GitHub Desktop.
Python nginx Log Parser
#!/usr/bin/env python
import apachelog
import gzip
import os
import sys
from apachelog import ApacheLogParserError
INPUT_DIR = "nginx-logs"
nformat = r'%h %l %u %t \"%r\" %>s %b \"%i\" \"%{User-Agent}i\" \"%V\"'
logparser = apachelog.parser(nformat)
for f in os.listdir(INPUT_DIR):
if f.endswith(".gz"):
logfile = gzip.open(os.path.join(INPUT_DIR, f))
else:
logfile = open(os.path.join(INPUT_DIR, f))
for l in logfile.readlines():
try:
data = logparser.parse(l)
print data
except ApacheLogParserError:
sys.stderr.write("Unable to parse %s" % l)
logfile.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment