From bd1f12ffa0d86361379da0b6614b358dd014fbb2 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 6 Sep 2015 15:08:33 +0200 Subject: [PATCH] add logging to find hot spots for tuning --- classifier/base.py | 11 +++++------ classifier/browser.py | 11 ++++++++--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/classifier/base.py b/classifier/base.py index 58dcc37..a71d12e 100644 --- a/classifier/base.py +++ b/classifier/base.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2007 Helmut Merz helmutm@cy55.de +# Copyright (c) 2015 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,8 +18,6 @@ """ Adapters and others classes for analyzing resources. - -$Id$ """ from itertools import tee @@ -41,6 +39,7 @@ from loops.resource import Resource from loops.setup import addAndConfigureObject from loops.type import TypeInterfaceSourceList +logger = getLogger('Classifier') TypeInterfaceSourceList.typeInterfaces += (IClassifier,) @@ -102,15 +101,15 @@ class Classifier(AdapterBase): if resource not in resources: concept.assignResource(resource, predicate) message = u'Assigning: %s %s %s' + self.log(message % (resource.title, predicate.title, concept.title), 5) else: message = u'Already assigned: %s %s %s' - self.log(message % (resource.title, predicate.title, concept.title), 4) + self.log(message % (resource.title, predicate.title, concept.title), 4) def log(self, message, level=5): if level >= self.logLevel: #print 'Classifier %s:' % getName(self.context), message - getLogger('Classifier').info( - u'%s: %s' % (getName(self.context), message)) + logger.info(u'%s: %s' % (getName(self.context), message)) class Extractor(object): diff --git a/classifier/browser.py b/classifier/browser.py index 3ef92a5..d68980d 100644 --- a/classifier/browser.py +++ b/classifier/browser.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2007 Helmut Merz helmutm@cy55.de +# Copyright (c) 2015 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,17 +18,19 @@ """ View class(es) for resource classifiers. - -$Id$ """ +from logging import getLogger from zope import interface, component from zope.app.pagetemplate import ViewPageTemplateFile from zope.cachedescriptors.property import Lazy +from zope.traversing.api import getName from loops.browser.concept import ConceptView from loops.common import adapted +logger = getLogger('ClassifierView') + class ClassifierView(ConceptView): @@ -44,10 +46,12 @@ class ClassifierView(ConceptView): if cta is not None: for r in collectResources(self.context): cta.process(r) + logger.info('Finished processing') return True def collectResources(concept, checkedConcepts=None, result=None): + logger.info('Start collecting resources for %s' % getName(concept)) if result is None: result = [] if checkedConcepts is None: @@ -59,4 +63,5 @@ def collectResources(concept, checkedConcepts=None, result=None): if c not in checkedConcepts: checkedConcepts.append(c) collectResources(c, checkedConcepts, result) + logger.info('Collected %s resources' % len(result)) return result