enabled rotate_handler output.
svn: r5674
This commit is contained in:
		| @@ -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
									
								
								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 | ||||
| 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() | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user