enabled rotate_handler output.
svn: r5674
This commit is contained in:
parent
ce52de5804
commit
cfb8cc47a4
@ -1,3 +1,9 @@
|
|||||||
|
2006-01-05 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
||||||
|
* src/GrampsLogger/__init__.py: added package interface
|
||||||
|
* src/GrampsLogger/_ErrorReportAssistant.py: enable rotate_handler output
|
||||||
|
* src/GrampsLogger/_RotateHandler.py: enable rotate_handler output
|
||||||
|
* test/GrampsLogger/GtkHandler_Test.py: add test for rotate_handler output
|
||||||
|
|
||||||
2006-01-05 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
2006-01-05 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
||||||
* src/Assistant.py: added callback support for pages
|
* src/Assistant.py: added callback support for pages
|
||||||
* src/GrampsLogger/_ErrorReportAssistant.py src/GrampsLogger/_ErrorView.py
|
* src/GrampsLogger/_ErrorReportAssistant.py src/GrampsLogger/_ErrorView.py
|
||||||
|
@ -89,7 +89,9 @@ class ErrorReportAssistant:
|
|||||||
textview = gtk.TextView()
|
textview = gtk.TextView()
|
||||||
|
|
||||||
self._error_details_text_buffer = textview.get_buffer()
|
self._error_details_text_buffer = textview.get_buffer()
|
||||||
self._error_details_text_buffer.set_text(self._error_detail)
|
self._error_details_text_buffer.set_text("\n".join(self._rotate_handler.get_formatted_log()) +
|
||||||
|
"\n\n" +
|
||||||
|
self._error_detail)
|
||||||
|
|
||||||
sw.add(textview)
|
sw.add(textview)
|
||||||
sw.show()
|
sw.show()
|
||||||
@ -117,7 +119,8 @@ class ErrorReportAssistant:
|
|||||||
textview = gtk.TextView()
|
textview = gtk.TextView()
|
||||||
|
|
||||||
self._sys_information_text_buffer = textview.get_buffer()
|
self._sys_information_text_buffer = textview.get_buffer()
|
||||||
self._sys_information_text_buffer.set_text(self._get_sys_information())
|
self._sys_information_text_buffer.set_text(
|
||||||
|
self._get_sys_information())
|
||||||
|
|
||||||
sw.add(textview)
|
sw.add(textview)
|
||||||
sw.show()
|
sw.show()
|
||||||
|
@ -31,6 +31,16 @@ class RotateHandler(logging.Handler):
|
|||||||
return [record for record in self._buffer[self._index:] + self._buffer[:self._index]
|
return [record for record in self._buffer[self._index:] + self._buffer[:self._index]
|
||||||
if record is not None]
|
if record is not None]
|
||||||
|
|
||||||
|
def get_formatted_log(self):
|
||||||
|
"""
|
||||||
|
Return the log buffer after it has been formatted.
|
||||||
|
|
||||||
|
Returns a list of strings.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return [self.format(record) for record in self._buffer[self._index:] + self._buffer[:self._index]
|
||||||
|
if record is not None]
|
||||||
|
|
||||||
def set_capacity(self,capacity):
|
def set_capacity(self,capacity):
|
||||||
"""
|
"""
|
||||||
Set the number of log records that will be stored.
|
Set the number of log records that will be stored.
|
||||||
|
46
src/GrampsLogger/__init__.py
Normal file
46
src/GrampsLogger/__init__.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
"""
|
||||||
|
This package implements some extensions to the standard Python logging module that
|
||||||
|
support a consistent logging and bug reporting framework for Gramps.
|
||||||
|
|
||||||
|
The package provides:
|
||||||
|
|
||||||
|
GtkHandler - a log handler that will pop up a gtk dialog when a log message is
|
||||||
|
sent to it. The dialog offers the user the chance to start
|
||||||
|
ErrorReportAssistant to send a bug report.
|
||||||
|
|
||||||
|
RotateHandler - a log handler that just keeps a rotating buffer of the last N
|
||||||
|
log messages sent to it. This can be used with the GtkHandler to
|
||||||
|
pass a history of log messages to the ErrorReportAssistant.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
These handlers can be used in same way a all the other logger module handlers.
|
||||||
|
|
||||||
|
Simple example:
|
||||||
|
|
||||||
|
from GrampsLogger import GtkHandler, RotateHandler
|
||||||
|
|
||||||
|
rh = RotateHandler(capacity=20)
|
||||||
|
rh.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
gtkh = GtkHandler(rotate_handler=rh)
|
||||||
|
gtkh.setLevel(logging.ERROR)
|
||||||
|
|
||||||
|
l = logging.getLogger("GtkHandlerTest")
|
||||||
|
l.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
l.addHandler(rh)
|
||||||
|
l.addHandler(gtkh)
|
||||||
|
|
||||||
|
log_message = "Debug message"
|
||||||
|
try:
|
||||||
|
wibble
|
||||||
|
except:
|
||||||
|
l.error(log_message,exc_info=True)
|
||||||
|
|
||||||
|
gtk.main()
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from _GtkHandler import GtkHandler
|
||||||
|
from _RotateHandler import RotateHandler
|
@ -12,29 +12,35 @@ logger = logging.getLogger('Gramps.Tests.GrampsLogger')
|
|||||||
import const
|
import const
|
||||||
const.rootDir = "../../src"
|
const.rootDir = "../../src"
|
||||||
|
|
||||||
import _GtkHandler
|
from GrampsLogger import GtkHandler, RotateHandler
|
||||||
|
|
||||||
|
|
||||||
class GtkHandlerTest(unittest.TestCase):
|
class GtkHandlerTest(unittest.TestCase):
|
||||||
"""Test the GtkHandler."""
|
"""Test the GtkHandler."""
|
||||||
|
|
||||||
def test_window(self):
|
def test_window(self):
|
||||||
"""Test that the window appears."""
|
"""Test that the window appears."""
|
||||||
|
|
||||||
rh = _GtkHandler.GtkHandler()
|
|
||||||
l = logging.getLogger("GtkHandlerTest")
|
|
||||||
l.setLevel(logging.ERROR)
|
|
||||||
|
|
||||||
l.addHandler(rh)
|
|
||||||
|
|
||||||
|
rh = RotateHandler(capacity=20)
|
||||||
|
rh.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
gtkh = GtkHandler(rotate_handler=rh)
|
||||||
|
gtkh.setLevel(logging.ERROR)
|
||||||
|
|
||||||
|
l = logging.getLogger("GtkHandlerTest")
|
||||||
|
l.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
l.addHandler(rh)
|
||||||
|
l.addHandler(gtkh)
|
||||||
|
|
||||||
|
l.info("An info message")
|
||||||
|
l.warn("A warn message")
|
||||||
|
l.debug("A debug message")
|
||||||
log_message = "Debug message"
|
log_message = "Debug message"
|
||||||
try:
|
try:
|
||||||
wibble
|
wibble
|
||||||
except:
|
except:
|
||||||
l.error(log_message,exc_info=True)
|
l.error(log_message,exc_info=True)
|
||||||
|
|
||||||
l.removeHandler(rh)
|
|
||||||
|
|
||||||
gtk.main()
|
gtk.main()
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user