allow log viewer to view all 4 log/error files
This commit is contained in:
parent
88670a6a2d
commit
a10f7c144e
|
@ -33,6 +33,11 @@ log = logging.getLogger("logview")
|
||||||
|
|
||||||
MAX_LINES = 100000 # max lines to display in window
|
MAX_LINES = 100000 # max lines to display in window
|
||||||
EST_CHARS_PER_LINE = 150 # used to guesstimate number of lines in log file
|
EST_CHARS_PER_LINE = 150 # used to guesstimate number of lines in log file
|
||||||
|
LOGFILES = [ [ 'Fpdb Errors', 'fpdb-errors.txt', False ] # label, filename, start value
|
||||||
|
, [ 'Fpdb Log', 'fpdb-log.txt', True ]
|
||||||
|
, [ 'HUD Errors', 'HUD-errors.txt', False ]
|
||||||
|
, [ 'HUD Log', 'HUD-log.txt', False ]
|
||||||
|
]
|
||||||
|
|
||||||
class GuiLogView:
|
class GuiLogView:
|
||||||
|
|
||||||
|
@ -41,7 +46,7 @@ class GuiLogView:
|
||||||
self.main_window = mainwin
|
self.main_window = mainwin
|
||||||
self.closeq = closeq
|
self.closeq = closeq
|
||||||
|
|
||||||
self.logfile = self.config.log_file # name of logfile
|
self.logfile = os.path.join(self.config.dir_log, LOGFILES[1][1])
|
||||||
self.dia = gtk.Dialog(title="Log Messages"
|
self.dia = gtk.Dialog(title="Log Messages"
|
||||||
,parent=None
|
,parent=None
|
||||||
,flags=gtk.DIALOG_DESTROY_WITH_PARENT
|
,flags=gtk.DIALOG_DESTROY_WITH_PARENT
|
||||||
|
@ -69,10 +74,19 @@ class GuiLogView:
|
||||||
scrolledwindow.add(self.listview)
|
scrolledwindow.add(self.listview)
|
||||||
self.vbox.pack_start(scrolledwindow, expand=True, fill=True, padding=0)
|
self.vbox.pack_start(scrolledwindow, expand=True, fill=True, padding=0)
|
||||||
|
|
||||||
|
hb = gtk.HBox(False, 0)
|
||||||
|
grp = None
|
||||||
|
for logf in LOGFILES:
|
||||||
|
rb = gtk.RadioButton(group=grp, label=logf[0], use_underline=True)
|
||||||
|
if grp is None: grp = rb
|
||||||
|
rb.set_active(logf[2])
|
||||||
|
rb.connect('clicked', self.__set_logfile, logf[0])
|
||||||
|
hb.pack_start(rb, False, False, 3)
|
||||||
refreshbutton = gtk.Button("Refresh")
|
refreshbutton = gtk.Button("Refresh")
|
||||||
refreshbutton.connect("clicked", self.refresh, None)
|
refreshbutton.connect("clicked", self.refresh, None)
|
||||||
self.vbox.pack_start(refreshbutton, False, False, 3)
|
hb.pack_start(refreshbutton, False, False, 3)
|
||||||
refreshbutton.show()
|
refreshbutton.show()
|
||||||
|
self.vbox.pack_start(hb, False, False, 0)
|
||||||
|
|
||||||
self.listview.show()
|
self.listview.show()
|
||||||
scrolledwindow.show()
|
scrolledwindow.show()
|
||||||
|
@ -90,6 +104,14 @@ class GuiLogView:
|
||||||
|
|
||||||
self.dia.connect('response', self.dialog_response_cb)
|
self.dia.connect('response', self.dialog_response_cb)
|
||||||
|
|
||||||
|
def __set_logfile(self, w, file):
|
||||||
|
#print "w is", w, "file is", file, "active is", w.get_active()
|
||||||
|
if w.get_active():
|
||||||
|
for logf in LOGFILES:
|
||||||
|
if logf[0] == file:
|
||||||
|
self.logfile = os.path.join(self.config.dir_log, logf[1])
|
||||||
|
self.refresh(w, file) # params are not used
|
||||||
|
|
||||||
def dialog_response_cb(self, dialog, response_id):
|
def dialog_response_cb(self, dialog, response_id):
|
||||||
# this is called whether close button is pressed or window is closed
|
# this is called whether close button is pressed or window is closed
|
||||||
self.closeq.put(self.__class__)
|
self.closeq.put(self.__class__)
|
||||||
|
@ -131,11 +153,14 @@ class GuiLogView:
|
||||||
|
|
||||||
l = 0
|
l = 0
|
||||||
for line in open(self.logfile):
|
for line in open(self.logfile):
|
||||||
# eg line:
|
# example line in logfile format:
|
||||||
# 2009-12-02 15:23:21,716 - config DEBUG config logger initialised
|
# 2009-12-02 15:23:21,716 - config DEBUG config logger initialised
|
||||||
l = l + 1
|
l = l + 1
|
||||||
if l > startline and len(line) > 49:
|
if l > startline:
|
||||||
|
if len(line) > 49 and line[23:26] == ' - ' and line[34:39] == ' ':
|
||||||
iter = self.liststore.append( (line[0:23], line[26:32], line[39:46], line[48:].strip(), True) )
|
iter = self.liststore.append( (line[0:23], line[26:32], line[39:46], line[48:].strip(), True) )
|
||||||
|
else:
|
||||||
|
iter = self.liststore.append( ('', '', '', line.strip(), True) )
|
||||||
|
|
||||||
def sortCols(self, col, n):
|
def sortCols(self, col, n):
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user