[CalendarServer-changes] [2345]
CalendarServer/branches/users/wsanchez/logging/twistedcaldav
source_changes at macosforge.org
source_changes at macosforge.org
Thu Apr 24 15:31:17 PDT 2008
Revision: 2345
http://trac.macosforge.org/projects/calendarserver/changeset/2345
Author: wsanchez at apple.com
Date: 2008-04-24 15:31:16 -0700 (Thu, 24 Apr 2008)
Log Message:
-----------
Add some sorting tools.
Modified Paths:
--------------
CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py
CalendarServer/branches/users/wsanchez/logging/twistedcaldav/test/test_log.py
Modified: CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py
===================================================================
--- CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py 2008-04-24 21:41:09 UTC (rev 2344)
+++ CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py 2008-04-24 22:31:16 UTC (rev 2345)
@@ -35,6 +35,9 @@
__all__ = [
"logLevels",
+ "cmpLogLevels",
+ "lowestLogLevel",
+ "highestLogLevel",
"logLevelForNamespace",
"setLogLevelForNamespace",
"clearLogLevels",
@@ -55,6 +58,15 @@
logLevelIndexes = dict(zip(logLevels, xrange(0, len(logLevels))))
+def cmpLogLevels(a, b):
+ return cmp(logLevelIndexes[a], logLevelIndexes[b])
+
+def lowestLogLevel(*levels):
+ return sorted(levels, cmpLogLevels)[0]
+
+def highestLogLevel(*levels):
+ return sorted(levels, cmpLogLevels, reverse=True)[0]
+
##
# Tools for manageing log levels
##
@@ -68,6 +80,9 @@
@param namespace: a logging namespace
@return: the log level for the given namespace.
"""
+ if not namespace:
+ return defaultLogLevel
+
if namespace in logLevelsByNamespace:
return logLevelsByNamespace[namespace]
@@ -89,6 +104,11 @@
@param level: the log level for the given namespace.
"""
assert level in logLevels
+
+ if not namespace:
+ global defaultLogLevel
+ defaultLogLevel = level
+
logLevelsByNamespace[namespace] = level
def clearLogLevels():
@@ -128,7 +148,7 @@
assert level in logLevels
log.msg(
str(message),
- isError = (logLevelIndexes[level] >= logLevelIndexes["error"]),
+ isError = (cmpLogLevels(level, "error") >= 0),
level = level,
namespace = self.namespace,
**kwargs
Modified: CalendarServer/branches/users/wsanchez/logging/twistedcaldav/test/test_log.py
===================================================================
--- CalendarServer/branches/users/wsanchez/logging/twistedcaldav/test/test_log.py 2008-04-24 21:41:09 UTC (rev 2344)
+++ CalendarServer/branches/users/wsanchez/logging/twistedcaldav/test/test_log.py 2008-04-24 22:31:16 UTC (rev 2345)
@@ -36,6 +36,21 @@
pass
class Logging (twisted.trial.unittest.TestCase):
+ def test_cmpLogLevels(self):
+ self.assertEquals(cmpLogLevels("info" , "error"), -1)
+ self.assertEquals(cmpLogLevels("debug", "debug"), 0)
+ self.assertEquals(cmpLogLevels("warn" , "debug"), 1)
+
+ def test_lowestLogLevel(self):
+ self.assertEquals(lowestLogLevel(*logLevels), "debug")
+ self.assertEquals(lowestLogLevel(*reversed(logLevels)), "debug")
+ self.assertEquals(lowestLogLevel("warn", "info"), "info")
+
+ def test_highestLogLevel(self):
+ self.assertEquals(highestLogLevel(*logLevels), "error")
+ self.assertEquals(highestLogLevel(*reversed(logLevels)), "error")
+ self.assertEquals(highestLogLevel("warn", "info"), "warn")
+
def test_namespace_default(self):
"""
Default namespace is module name.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080424/b60d46f1/attachment.html
More information about the calendarserver-changes
mailing list