Ignore:
Timestamp:
May 20, 2010 4:52:54 PM (14 years ago)
Author:
mylan
Message:

Add logging to upgrades.CanonicalConverter?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.canonicalpath/trunk/quintagroup/canonicalpath/upgrades.py

    r2362 r2365  
    1 import logging 
    2 from zope.component import queryAdapter 
     1from logging import NOTSET, DEBUG, INFO, ERROR 
     2from logging import Logger, StreamHandler, Formatter 
     3from StringIO import StringIO 
     4from zope.component import getAdapter 
    35#from zope.component import queryMultiAdapter 
    46from Acquisition import aq_base, aq_inner 
     
    1315    """Convert canonical link to canonical path and vice versa.""" 
    1416 
    15     def __init__(self, portal_url, logger_name="quintagroup.canonicalpath"): 
     17    def __init__(self, portal_url): 
    1618        """Create instanse of convertor. 
    1719           - *portal_url* (string), add in the front of canonical path property 
     
    1921           - *logger_name* - name of the logger 
    2022        """ 
    21         self.initLogger(logger_name) 
     23        self._initLogger() 
    2224        self.portal_url = portal_url 
    2325 
    24     def initLogger(self, lname): 
    25         self.logger = logging.getLogger(lname) 
     26    def getLogs(self): 
     27        self._inout.flush() 
     28        return self._inout.getvalue() 
     29 
     30    def cleanupLogs(self): 
     31        self._inout = StringIO() 
    2632 
    2733    def convertLinkToPath(self, obj): 
     
    4248           Log results in logger. 
    4349        """ 
    44         src = queryAdapter(obj, src_iface) 
    45         dst = queryAdapter(obj, dst_iface) 
    46         # XXX: Check is this correct work XXX 
    47         obj = aq_base(aq_inner(obj)) 
    48         # XXX 
    49         if src is not None \ 
    50            and dst is not None: 
    51             msg = "Migrate %s into %s for %s object: " \ 
    52                    % (src_iface, dst_iface, obj.absolute_url()) 
    53             try: 
    54                 converter(src, dst) 
    55             except Exception, e: 
    56                 lev = logging.ERROR 
    57                 msg += "WITH ERROR: %s" % str(e) 
    58             else: 
    59                 lev = logging.INFO 
    60                 msg += "SUCCESSFUL" 
    61  
    62             self.logger.log(lev, msg) 
     50        msg = "Migrate %s into %s for %s object: " \ 
     51               % (src_iface.__name__, dst_iface.__name__, obj.absolute_url()) 
     52        try: 
     53            src = getAdapter(obj, src_iface) 
     54            dst = getAdapter(obj, dst_iface) 
     55            # XXX: Check is this correct work XXX 
     56            obj = aq_base(aq_inner(obj)) 
     57            # XXX 
     58            converter(src, dst) 
     59        except Exception: 
     60            import sys 
     61            et, em, etr = map(str, sys.exc_info()) 
     62            lev = ERROR 
     63            msg += "ERROR: %s: %s" % (et, em) 
     64        else: 
     65            lev = INFO 
     66            msg += "SUCCESS" 
     67        self._logger.log(lev, msg) 
    6368             
    64             return lev == logging.INFO and True or False 
     69        return lev == INFO and True or False 
    6570     
    6671    def _convertP2L(self, src, dst): 
     
    6974        cpath = cpath.startswith('/') and cpath or '/' + cpath 
    7075        dst.canonical_link = self.portal_url + cpath 
    71         del dst.canonical_path 
     76        del src.canonical_path 
    7277 
    7378    def _convertL2P(self, src, dst): 
     
    7681            "Convertion from canonical link to canonical path not implemented") 
    7782 
     83    def _initLogger(self): 
     84        self._inout = StringIO() 
     85        handler = StreamHandler(self._inout) 
     86        handler.setLevel(DEBUG) 
     87        formatter = Formatter(fmt="[%(asctime)s]: %(message)s", 
     88                                      datefmt="%H:%M:%S") 
     89        handler.setFormatter(formatter) 
     90        self._logger = Logger("quintagroup.canonicalpath", NOTSET) 
     91        self._logger.addHandler(handler) 
    7892 
Note: See TracChangeset for help on using the changeset viewer.