aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Sokolovsky <paul.sokolovsky@linaro.org>2014-04-17 21:43:50 +0300
committerPaul Sokolovsky <paul.sokolovsky@linaro.org>2014-04-17 22:07:36 +0300
commit2c0fb09de84ba958089dcb32b8d4e8f88ca1be53 (patch)
tree1282ae8c719b31110720f211d0eb474d96745903
parent913ae0721cf8cff6d110da01376be29bc8bbe990 (diff)
logsplit.py: Add script to split apache logs per day.
Change-Id: I2f3489f7d6e880c5397b3519c02ed89f394ddbe4
-rwxr-xr-xlogsplit.py34
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:])