[CalendarServer-changes] [2355] CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py

source_changes at macosforge.org source_changes at macosforge.org
Fri Apr 25 19:21:28 PDT 2008


Revision: 2355
          http://trac.macosforge.org/projects/calendarserver/changeset/2355
Author:   wsanchez at apple.com
Date:     2008-04-25 19:21:28 -0700 (Fri, 25 Apr 2008)

Log Message:
-----------
Add some convenience methods to determine/set logging level for a
logger, and one to determine if a given log level will emit.

Also, determine whether to emit in emit(), though dreid will tell me
we need to move this to the observer, which will happen when I learn
how 'n stuff.

Modified Paths:
--------------
    CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py

Modified: CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py
===================================================================
--- CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py	2008-04-26 02:04:20 UTC (rev 2354)
+++ CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py	2008-04-26 02:21:28 UTC (rev 2355)
@@ -158,14 +158,37 @@
         Called internally to emit log messages at a given log level.
         """
         assert level in logLevels
-        log.msg(
-            str(message),
-            isError = (cmpLogLevels(level, "error") >= 0),
-            level = level,
-            namespace = self.namespace,
-            **kwargs
-        )
 
+        if self.willLogAtLevel(level):
+            log.msg(
+                "[#%s] %s" % (level, message),
+                isError = (cmpLogLevels(level, "error") >= 0),
+                level = level,
+                namespace = self.namespace,
+                **kwargs
+            )
+
+    def level(self):
+        """
+        @return: the logging level for this logger's namespace.
+        """
+        return logLevelForNamespace(self.namespace)
+
+    def setLevel(self, level):
+        """
+        Set the logging level for this logger's namespace.
+        @param level: a logging level
+        """
+        setLogLevelForNamespace(self.namespace, level)
+
+    def willLogAtLevel(self, level):
+        """
+        @param level: a logging level
+        @return: C{True} if this logger will log at the given logging
+            level.
+        """
+        return cmpLogLevels(self.level(), level) <= 0
+
 class LoggingMixIn (object):
     """
     Mix-in class for logging methods.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080425/fb47bcda/attachment.html


More information about the calendarserver-changes mailing list