diff options
author | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2014-04-17 21:43:50 +0300 |
---|---|---|
committer | Paul Sokolovsky <paul.sokolovsky@linaro.org> | 2014-04-17 22:07:36 +0300 |
commit | 2c0fb09de84ba958089dcb32b8d4e8f88ca1be53 (patch) | |
tree | 1282ae8c719b31110720f211d0eb474d96745903 | |
parent | 913ae0721cf8cff6d110da01376be29bc8bbe990 (diff) |
logsplit.py: Add script to split apache logs per day.
Change-Id: I2f3489f7d6e880c5397b3519c02ed89f394ddbe4
-rwxr-xr-x | logsplit.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/logsplit.py b/logsplit.py new file mode 100755 index 0000000..76a18ea --- /dev/null +++ b/logsplit.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +from __future__ import print_function +import sys +import re +import datetime +import gzip +import fileinput + + +def main(file_names): + fi = fileinput.FileInput(file_names, openhook=fileinput.hook_compressed) + f = None + last_date = None + for line in fi: + match = re.match(r".+?\[(.+?):.+?\]", line) + try: + date = match.group(1) + if date != last_date: + last_date = date + dt = datetime.datetime.strptime(date, "%d/%b/%Y") + fname = dt.strftime("access.log-%Y%m%d.gz") + if f is not None: + f.close() + #f = open(fname, "w") + f = gzip.GzipFile(fname, "w") + f.write(line) + except: + print("Error context: %s:%d\n%s" % (fi.filename(), fi.filelineno(), line)) + raise + f.close() + + +if __name__ == "__main__": + main(sys.argv[1:]) |