enabled rotate_handler output.
svn: r5674
This commit is contained in:
parent
7f56bd88c7
commit
2941de0fb6
@ -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>
|
||||
* src/Assistant.py: added callback support for pages
|
||||
* src/GrampsLogger/_ErrorReportAssistant.py src/GrampsLogger/_ErrorView.py
|
||||
|
@ -89,7 +89,9 @@ class ErrorReportAssistant:
|
||||
textview = gtk.TextView()
|
||||
|
||||
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.show()
|
||||
@ -117,7 +119,8 @@ class ErrorReportAssistant:
|
||||
textview = gtk.TextView()
|
||||
|
||||
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.show()
|
||||
|
@ -31,6 +31,16 @@ class RotateHandler(logging.Handler):
|
||||
return [record for record in self._buffer[self._index:] + self._buffer[:self._index]
|
||||
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):
|
||||
"""
|
||||
Set the number of log records that will be stored.
|
||||
|
46
gramps2/src/GrampsLogger/__init__.py
Normal file
46
gramps2/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
|
||||
const.rootDir = "../../src"
|
||||
|
||||
import _GtkHandler
|
||||
|
||||
from GrampsLogger import GtkHandler, RotateHandler
|
||||
|
||||
class GtkHandlerTest(unittest.TestCase):
|
||||
"""Test the GtkHandler."""
|
||||
|
||||
def test_window(self):
|
||||
"""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"
|
||||
try:
|
||||
wibble
|
||||
except:
|
||||
l.error(log_message,exc_info=True)
|
||||
|
||||
l.removeHandler(rh)
|
||||
|
||||
gtk.main()
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user