[CalendarServer-changes] [11340] CalendarServer/trunk

source_changes at macosforge.org source_changes at macosforge.org
Thu Jun 13 15:20:49 PDT 2013


Revision: 11340
          http://trac.calendarserver.org//changeset/11340
Author:   wsanchez at apple.com
Date:     2013-06-13 15:20:49 -0700 (Thu, 13 Jun 2013)
Log Message:
-----------
Get rid of Logger.willLogAtLevel()
Add level argument to Logger.failure()

Modified Paths:
--------------
    CalendarServer/trunk/twext/python/log.py
    CalendarServer/trunk/twext/python/test/test_log.py
    CalendarServer/trunk/twistedcaldav/memcacheprops.py
    CalendarServer/trunk/twistedcaldav/storebridge.py
    CalendarServer/trunk/txdav/caldav/datastore/scheduling/caldav/delivery.py

Modified: CalendarServer/trunk/twext/python/log.py
===================================================================
--- CalendarServer/trunk/twext/python/log.py	2013-06-13 21:40:03 UTC (rev 11339)
+++ CalendarServer/trunk/twext/python/log.py	2013-06-13 22:20:49 UTC (rev 11340)
@@ -346,7 +346,7 @@
         TheLogPublisher(event)
 
 
-    def failure(self, format, failure=None, **kwargs):
+    def failure(self, format, failure=None, level=LogLevel.error, **kwargs):
         """
         Log an failure and emit a traceback.
 
@@ -369,13 +369,15 @@
         @param failure: a L{Failure} to log.  If C{None}, a L{Failure} is
             created from the exception in flight.
 
+        @param level: a L{LogLevel} to use.
+
         @param kwargs: additional keyword parameters to include with the
             event.
         """
         if failure is None:
             failure=Failure()
 
-        self.emit(LogLevel.error, format, log_failure=failure, **kwargs)
+        self.emit(level, format, log_failure=failure, **kwargs)
 
 
     def level(self):
@@ -394,17 +396,7 @@
         setLogLevelForNamespace(self.namespace, level)
 
 
-    def willLogAtLevel(self, level):
-        """
-        @param level: a L{LogLevel}
 
-        @return: true if this logger will emit at the given log level,
-            otherwise false.
-        """
-        return self.level() <= level
-
-
-
 class LegacyLogger(Logger):
     """
     A L{Logger} that provides some compatibility with the L{twisted.python.log}
@@ -459,9 +451,6 @@
     def log_emit(self, format=None, **kwargs):
         self.emit(level, format, **kwargs)
 
-    def will_emit(self):
-        return self.willLogAtLevel(level)
-
     log_emit.__doc__ = doc
 
     setattr(Logger, level.name, log_emit)
@@ -572,7 +561,8 @@
         self.observer = observer
 
 
-    def eventShouldForward(self, event):
+    @staticmethod
+    def eventShouldLog(event):
         if event["log_level"] >= logLevelForNamespace(event["log_namespace"]):
             return True
         else:
@@ -580,7 +570,7 @@
 
 
     def __call__(self, event):
-        if self.eventShouldForward(event):
+        if self.eventShouldLog(event):
             self.observer(event)
 
 

Modified: CalendarServer/trunk/twext/python/test/test_log.py
===================================================================
--- CalendarServer/trunk/twext/python/test/test_log.py	2013-06-13 21:40:03 UTC (rev 11339)
+++ CalendarServer/trunk/twext/python/test/test_log.py	2013-06-13 22:20:49 UTC (rev 11340)
@@ -163,7 +163,7 @@
             self.assertEquals(log.emitted["format"], format)
             self.assertEquals(log.emitted["kwargs"]["junk"], message)
 
-            if log.willLogAtLevel(level):
+            if level >= log.level():
                 self.assertEquals(log.event["log_format"], format)
                 self.assertEquals(log.event["log_level"], level)
                 self.assertEquals(log.event["log_namespace"], __name__)
@@ -310,19 +310,6 @@
             self.assertIdentical(level, logLevelForNamespace(log.namespace))
 
 
-    def test_willLogAtLevel(self):
-        """
-        willLogAtLevel()
-        """
-        log = Logger()
-
-        for level in LogLevel.iterconstants():
-            if level < log.level():
-                self.assertFalse(log.willLogAtLevel(level), (level, log.level()))
-            else:
-                self.assertTrue(log.willLogAtLevel(level), (level, log.level()))
-
-
     def test_logInvalidLogLevel(self):
         """
         Test passing in a bogus log level to C{emit()}.

Modified: CalendarServer/trunk/twistedcaldav/memcacheprops.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/memcacheprops.py	2013-06-13 21:40:03 UTC (rev 11339)
+++ CalendarServer/trunk/twistedcaldav/memcacheprops.py	2013-06-13 22:20:49 UTC (rev 11340)
@@ -145,16 +145,16 @@
         result = self._split_gets_multi((key for key, _ignore_name in keys),
             client.gets_multi)
 
-        if self.log.willLogAtLevel("debug"):
-            if abortIfMissing:
-                missing = "missing "
-            else:
-                missing = ""
-            self.log.debug("Loaded keys for %schildren of %s: %s" % (
-                missing,
-                self.collection,
-                [name for _ignore_key, name in keys],
-            ))
+        if abortIfMissing:
+            missing = "missing "
+        else:
+            missing = ""
+        self.log.debug(
+            "Loaded keys for {missing}children of {collection}: {children}",
+            missing=missing, collection=self.collection,
+            children=[name for _ignore_key, name in keys],
+        )
+        # FIXME.logging: defer the above list comprehension
 
         missing = tuple((
             name for key, name in keys

Modified: CalendarServer/trunk/twistedcaldav/storebridge.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/storebridge.py	2013-06-13 21:40:03 UTC (rev 11339)
+++ CalendarServer/trunk/twistedcaldav/storebridge.py	2013-06-13 22:20:49 UTC (rev 11340)
@@ -82,7 +82,6 @@
 from twistedcaldav.customxml import calendarserver_namespace
 from twistedcaldav.instance import InvalidOverriddenInstanceError, \
     TooManyInstancesError
-from twisted.python.failure import Failure
 
 """
 Wrappers to translate between the APIs in L{txdav.caldav.icalendarstore} and

Modified: CalendarServer/trunk/txdav/caldav/datastore/scheduling/caldav/delivery.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/scheduling/caldav/delivery.py	2013-06-13 21:40:03 UTC (rev 11339)
+++ CalendarServer/trunk/txdav/caldav/datastore/scheduling/caldav/delivery.py	2013-06-13 22:20:49 UTC (rev 11340)
@@ -134,10 +134,15 @@
                 recipient,
                 noAttendeeRefresh=self.scheduler.noAttendeeRefresh,
             ))
-        except ImplicitProcessorException, e:
-            log.error("Could not store data in Inbox : %s" % (recipient.inbox,))
-            if log.willLogAtLevel(LogLevel.debug):
-                log.debug("%s: %s" % (e, Failure().getTraceback(),))
+        except ImplicitProcessorException as e:
+            log.failure(
+                "Could not store data in inbox {inbox}",
+                inbox=recipient.inbox, level=LogLevel.debug
+            )
+            log.error(
+                "Could not store data in inbox {inbox}",
+                inbox=recipient.inbox
+            )
             err = HTTPError(ErrorResponse(
                 responsecode.FORBIDDEN,
                 (caldav_namespace, "recipient-permissions"),
@@ -151,10 +156,14 @@
             try:
                 child = yield recipient.inbox._createCalendarObjectWithNameInternal(name, self.scheduler.calendar, ComponentUpdateState.INBOX)
             except Exception as e:
-                # FIXME: Bare except
-                log.error("Could not store data in Inbox : %s %s" % (recipient.inbox, e,))
-                if log.willLogAtLevel(LogLevel.debug):
-                    log.debug("Bare Exception: %s" % (Failure().getTraceback(),))
+                log.failure(
+                    "Could not store data in inbox {inbox}: {error}",
+                    inbox=recipient.inbox, error=e, level=LogLevel.debug
+                )
+                log.error(
+                    "Could not store data in inbox {inbox}: {error}",
+                    inbox=recipient.inbox, error=e
+                )
                 err = HTTPError(ErrorResponse(
                     responsecode.FORBIDDEN,
                     (caldav_namespace, "recipient-permissions"),
@@ -194,10 +203,15 @@
                 remote,
                 event_details,
             ))
-        except:
-            log.error("Could not determine free busy information: %s" % (recipient.cuaddr,))
-            if log.willLogAtLevel(LogLevel.debug):
-                log.debug("Bare Exception: %s" % (Failure().getTraceback(),))
+        except Exception:
+            log.failure(
+                "Could not determine free busy information for recipient {cuaddr}",
+                cuaddr=recipient.cuaddr, level=LogLevel.debug
+            )
+            log.error(
+                "Could not determine free busy information for recipient {cuaddr}",
+                cuaddr=recipient.cuaddr
+            )
             err = HTTPError(ErrorResponse(
                 responsecode.FORBIDDEN,
                 (caldav_namespace, "recipient-permissions"),
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130613/28f42791/attachment-0001.html>


More information about the calendarserver-changes mailing list