From dee44acbb76fd9e5b3226646bbf5c041f8890497 Mon Sep 17 00:00:00 2001 From: Sascha Silbe Date: Wed, 22 Jul 2009 16:56:32 +0000 Subject: use sugar.logger.trace() instead of carquinyol.trace() --- diff --git a/src/carquinyol/__init__.py b/src/carquinyol/__init__.py index cc8d7eb..8b13789 100644 --- a/src/carquinyol/__init__.py +++ b/src/carquinyol/__init__.py @@ -1,60 +1 @@ -import logging -import decorator - - -def filter_maxsize(val, maxsize_list, maxsize_dict, maxsize_string) : - if isinstance(val, (list, tuple)) : - if len(val) > maxsize_list : - return "[...]" - - return [filter_maxsize(child, maxsize_list, maxsize_dict, maxsize_string) - for child in val] - - elif isinstance(val, dict) : - if len(val) > maxsize_dict : - return "{...}" - - return dict([ - (key, filter_maxsize(child, maxsize_list, maxsize_dict, maxsize_string)) - for (key, child) in val.items()]) - - elif isinstance(val, (basestring, buffer)) : - if len(val) > maxsize_string : - return "'...'" - - return val - - else : - val = repr(val) - if len(val) > maxsize_string : - return "<...>" - - return val - - -TRACE=9 -logging.addLevelName(TRACE, 'TRACE') - -# TODO: lazy evaluation of parameters -def trace(skip_args=[], skip_kwargs=[], maxsize_list=30, maxsize_dict=30, maxsize_string=300) : - def _trace(f, *args, **kwargs) : - params_formatted = ", ".join( - [repr(filter_maxsize(a, maxsize_list, maxsize_dict, maxsize_string)) - for (idx, a) in enumerate(args) if idx not in skip_args]+\ - ['%s=%r' % (k,filter_maxsize(v, maxsize_list, maxsize_dict, maxsize_string)) - for (k,v) in kwargs.items() if k not in skip_kwargs]) - - logging.log(TRACE, "%s(%s) invoked", f.__name__, params_formatted) - - try : - res=f(*args, **kwargs) - except : - logging.exception("Exception occured in %s", f.__name__) - raise - - logging.log(TRACE, "%s(%s) returned %r", f.__name__, params_formatted, - filter_maxsize(res, maxsize_list, maxsize_dict, maxsize_string)) - return res - - return decorator.decorator(_trace) diff --git a/src/carquinyol/datastore.py b/src/carquinyol/datastore.py index 60cf94c..86757aa 100644 --- a/src/carquinyol/datastore.py +++ b/src/carquinyol/datastore.py @@ -27,8 +27,8 @@ import gobject from sugar import mime import sugar.datastore +from sugar.logger import trace -from carquinyol import trace from carquinyol import layoutmanager from carquinyol import migration from carquinyol.layoutmanager import MAX_QUERY_LIMIT @@ -120,7 +120,7 @@ class DataStore(dbus.service.Object): in_signature='ssa{sv}sb', out_signature='ss', byte_arrays=True) - @trace() + @trace(logger=logger) def save(self, tree_id, parent_id, metadata, path, delete_after): return self._save(tree_id, parent_id, metadata, path, delete_after) @@ -163,7 +163,7 @@ class DataStore(dbus.service.Object): return (tree_id, child_id) - @trace() + @trace(logger=logger) def _save_completion_cb(self, tree_id, parent_id, child_id, exc=None): if exc is not None: logging.error("Error during saving of entry (%r,%r,%r):\n%s" % ( @@ -184,7 +184,7 @@ class DataStore(dbus.service.Object): in_signature='ssa{sv}', out_signature='', byte_arrays=True) - @trace() + @trace(logger=logger) def change_metadata(self, tree_id, version_id, metadata) : # TODO: copy docstring from datastore-redesign.html self._metadata_store.store(tree_id, version_id, metadata) @@ -199,7 +199,7 @@ class DataStore(dbus.service.Object): in_signature='a{sv}a{sv}', out_signature='aa{sv}u', byte_arrays=True) - @trace() + @trace(logger=logger) def find(self, query, options): return self._find(query, options) @@ -207,7 +207,7 @@ class DataStore(dbus.service.Object): in_signature='sa{sv}a{sv}', out_signature='aa{sv}u', byte_arrays=True) - @trace() + @trace(logger=logger) def textsearch(self, querystring, query, options) : return self._find(query, options, querystring) @@ -259,7 +259,7 @@ class DataStore(dbus.service.Object): out_signature='s', sender_keyword='sender', byte_arrays=True) - @trace() + @trace(logger=logger) def get_data(self, tree_id, version_id, sender=None): # TODO: copy docstring from datastore-redesign.html user_id = dbus.Bus().get_unix_user(sender) -- cgit v0.9.1