Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 21 additions & 19 deletions syslog-summary
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ Lars Wirzenius <liw@iki.fi>
Tommi Virtanen <tv@debian.org>
David Paleino <d.paleino@gmail.com>"""

from __future__ import print_function

version = "1.14"

import sys, re, getopt, string
Expand Down Expand Up @@ -62,7 +64,7 @@ def io_error(err, filename, die=True):
if die:
traceback.print_exc(file=sys.stderr)
else:
print "[E] %s [%s(%s) - %s]" % (os.strerror(num), errno.errorcode[num], num, filename)
print("[E] %s [%s(%s) - %s]" % (os.strerror(num), errno.errorcode[num], num, filename))

if die:
sys.exit(1)
Expand All @@ -72,7 +74,7 @@ def read_patterns(filename):
pats = []
try:
f = open(filename, "r")
except IOError, e:
except IOError as e:
io_error(e, filename, False)
return []
for line in f:
Expand All @@ -91,7 +93,7 @@ def read_states(filename):
return states
try:
f = open(filename, "r")
except IOError, e:
except IOError as e:
io_error(e, filename, False)
return states
for line in f:
Expand All @@ -105,9 +107,9 @@ def save_states(filename, states):
return
try:
f = open(filename, "w")
except IOError, e:
except IOError as e:
io_error(e, filename, True)
for filename in states.keys():
for filename in list(states.keys()):
value = states[filename]
f.write("%s %d %s\n" % (filename, value[0], value[1]))
f.close()
Expand All @@ -123,7 +125,7 @@ def split_date(line):
m = pat.match(line)
if m:
return line[:m.end()], line[m.end():]
print "line has bad date", "<" + string.rstrip(line) + ">"
print("line has bad date", "<" + string.rstrip(line) + ">")
return None, line

def is_gzipped(filename):
Expand All @@ -140,7 +142,7 @@ def is_gzipped(filename):
from os.path import splitext

if not QUIET:
print "Using fallback detection... please install python-magic for better gzip detection."
print("Using fallback detection... please install python-magic for better gzip detection.")

if splitext(filename)[1] == ".gz":
return True
Expand All @@ -152,7 +154,7 @@ def summarize(filename, states):
order = []
ignored_count = 0
if not QUIET:
print "Summarizing %s" % filename
print("Summarizing %s" % filename)

# If the file is a gzipped log, open it
# using the proper function from the gzip
Expand All @@ -162,15 +164,15 @@ def summarize(filename, states):
file = gzopen(filename, "rb")
else:
file = open(filename, "r")
except IOError, e:
except IOError as e:
io_error(e, filename, True)

linecount = 0

shaobj = sha1()
if filename in states:
oldlines, oldsha = states[filename]
for i in xrange(oldlines):
for i in range(oldlines):
line = file.readline()
shaobj.update(line)
# print "OLD-new: %s" % shaobj.hexdigest()
Expand All @@ -182,21 +184,21 @@ def summarize(filename, states):
else:
linecount = oldlines
if not QUIET:
print "%8d Lines skipped (already processed)" % linecount
print("%8d Lines skipped (already processed)" % linecount)

line = file.readline()
previous = None
# print "BEFORE-while: %s" % shaobj.hexdigest()
foo=0
while line:
# foo+=1
shaobj.update(line)
shaobj.update(line.encode())
linecount += 1

if should_be_ignored(line):
ignored_count += 1
if DEBUG:
print "Ignoring: %s" % line
print("Ignoring: %s" % line)
line = file.readline()

date, rest = split_date(line)
Expand All @@ -213,7 +215,7 @@ def summarize(filename, states):
count = int(repeated.group(1))
rest = previous

if counts.has_key(rest):
if rest in counts:
counts[rest] = counts[rest] + count
else:
assert count == 1
Expand All @@ -233,14 +235,14 @@ def summarize(filename, states):
# print states

if QUIET and order:
print "Summarizing %s" % filename
print("Summarizing %s" % filename)
if not QUIET or order:
print "%8d Patterns to ignore" % len(ignore_pats)
print "%8d Ignored lines" % ignored_count
print("%8d Patterns to ignore" % len(ignore_pats))
print("%8d Ignored lines" % ignored_count)
for rest in order:
print "%8d %s" % (counts[rest], rest),
print("%8d %s" % (counts[rest], rest), end='')
if not QUIET or order:
print
print()

def main():
global ignore_pats, IGNORE_FILENAME, STATE_FILENAME, REPEAT, QUIET, DEBUG
Expand Down