You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by le...@apache.org on 2005/04/16 20:40:28 UTC

svn commit: r161595 - gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py

Author: leosimons
Date: Sat Apr 16 11:40:28 2005
New Revision: 161595

URL: http://svn.apache.org/viewcvs?view=rev&rev=161595
Log:
Add a useful debugging plugin.

* pygump/python/gump/plugins/logreporter.py: new plugin that outputs all model logs.

Added:
    gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py
      - copied, changed from r161585, gump/branches/Gump3/pygump/python/gump/plugins/instrumentation.py

Copied: gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py (from r161585, gump/branches/Gump3/pygump/python/gump/plugins/instrumentation.py)
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py?view=diff&rev=161595&p1=gump/branches/Gump3/pygump/python/gump/plugins/instrumentation.py&r1=161585&p2=gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py&r2=161595
==============================================================================
--- gump/branches/Gump3/pygump/python/gump/plugins/instrumentation.py (original)
+++ gump/branches/Gump3/pygump/python/gump/plugins/logreporter.py Sat Apr 16 11:40:28 2005
@@ -17,18 +17,30 @@
 __copyright__ = "Copyright (c) 2004-2005 The Apache Software Foundation"
 __license__   = "http://www.apache.org/licenses/LICENSE-2.0"
 
-import platform
-
 from gump.plugins import AbstractPlugin
 
-class TimerPlugin(AbstractPlugin):
-    """Set a date property on each model object as it is visited."""
-    def __init__(self, propertyname, format='%d %b %Y %H:%M:%S'):
-        self.format = format
-        self.propertyname = propertyname
-        
-    def _do_visit(self, object):
-        setattr(object, self.propertyname, self.gettime())
+hr = '------------------------------------------------------------------------'
+
+class LogReporterPlugin(AbstractPlugin):
+    """Outputs all logs set on all log-style model annotations to the log."""
+    def __init__(self, log):
+        self.log = log
+    
+    def initialize(self):
+        self.log.debug(hr)
+        self.log.debug('  Outputting all log data (a lot)...')
+        self.log.debug(hr)
+
+    def _do_visit(self, object, container=None):
+        for attribute in dir(object):
+            if attribute.endswith("_log"):
+                logmsg = getattr(object,attribute)
+                name = getattr(object, "name", "unnamed %s" % type(object))
+                if container:
+                    if hasattr(container, "name"):
+                        name = "%s:%s" % (container.name, name)
+                self.log.debug("---%s.%s----------------------------------:\n%s" % (name, attribute, logmsg))
+                self.log.debug(hr)
     
     def visit_workspace(self, workspace):
         self._do_visit(workspace)
@@ -38,7 +50,5 @@
     
     def visit_project(self, project):    
         self._do_visit(project)
-
-    def gettime(self):
-        import time
-        return time.strftime(self.format, time.gmtime())
+        for command in project.commands:
+            self._do_visit(command,project)