[CalendarServer-changes] [2339]
CalendarServer/branches/users/wsanchez/logging/twistedcaldav
source_changes at macosforge.org
source_changes at macosforge.org
Wed Apr 23 17:11:50 PDT 2008
Revision: 2339
http://trac.macosforge.org/projects/calendarserver/changeset/2339
Author: wsanchez at apple.com
Date: 2008-04-23 17:11:49 -0700 (Wed, 23 Apr 2008)
Log Message:
-----------
Add code to set and get log levels.
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-23 23:46:01 UTC (rev 2338)
+++ CalendarServer/branches/users/wsanchez/logging/twistedcaldav/log.py 2008-04-24 00:11:49 UTC (rev 2339)
@@ -35,6 +35,9 @@
__all__ = [
"logLevels",
+ "logLevelForNamespace",
+ "setLogLevelForNamespace",
+ "clearLogLevels",
"Logger",
"LoggingMixIn",
]
@@ -52,6 +55,40 @@
logLevelIndexes = dict(zip(logLevels, xrange(0, len(logLevels))))
+##
+# Tools for manageing log levels
+##
+
+defaultLogLevel = "info"
+
+logLevelsByNamespace = {}
+
+def logLevelForNamespace(namespace):
+ if namespace in logLevelsByNamespace:
+ return logLevelsByNamespace[namespace]
+
+ segments = namespace.split(".")
+ index = len(segments) - 1
+
+ while index > 0:
+ namespace = ".".join(segments[:index])
+ if namespace in logLevelsByNamespace:
+ return logLevelsByNamespace[namespace]
+ index -= 1
+
+ return defaultLogLevel
+
+def setLogLevelForNamespace(namespace, level):
+ assert level in logLevels
+ logLevelsByNamespace[namespace] = level
+
+def clearLogLevels():
+ logLevelsByNamespace.clear()
+
+##
+# Loggers
+##
+
class Logger (object):
"""
Logging object.
Modified: CalendarServer/branches/users/wsanchez/logging/twistedcaldav/test/test_log.py
===================================================================
--- CalendarServer/branches/users/wsanchez/logging/twistedcaldav/test/test_log.py 2008-04-23 23:46:01 UTC (rev 2338)
+++ CalendarServer/branches/users/wsanchez/logging/twistedcaldav/test/test_log.py 2008-04-24 00:11:49 UTC (rev 2339)
@@ -14,7 +14,8 @@
# limitations under the License.
##
-from twistedcaldav.log import Logger, LoggingMixIn, logLevels
+from twistedcaldav.log import *
+from twistedcaldav.log import defaultLogLevel
import twisted.trial.unittest
@@ -66,6 +67,43 @@
method(message, junk=message)
# Ensure that test_emit got called with expected arguments
- self.failUnless(log.emitted["level"] == level)
- self.failUnless(log.emitted["message"] == message)
- self.failUnless(log.emitted["kwargs"]["junk"] == message)
+ self.assertEquals(log.emitted["level"], level)
+ self.assertEquals(log.emitted["message"], message)
+ self.assertEquals(log.emitted["kwargs"]["junk"], message)
+
+ def test_defaultLogLevel(self):
+ """
+ Default log level is used.
+ """
+ clearLogLevels()
+ self.failUnless(logLevelForNamespace("rocker.cool.namespace"), defaultLogLevel)
+
+ def test_logLevel(self):
+ """
+ Setting and retrieving log levels.
+ """
+ clearLogLevels()
+
+ setLogLevelForNamespace("twisted.web2", "debug")
+ setLogLevelForNamespace("twisted.web2.dav", "error")
+
+ self.assertEquals(logLevelForNamespace("twisted" ), defaultLogLevel)
+ self.assertEquals(logLevelForNamespace("twisted.web2" ), "debug")
+ self.assertEquals(logLevelForNamespace("twisted.web2.dav" ), "error")
+ self.assertEquals(logLevelForNamespace("twisted.web2.dav.test" ), "error")
+ self.assertEquals(logLevelForNamespace("twisted.web2.dav.test1.test2"), "error")
+
+ def test_clearLogLevel(self):
+ """
+ Clearing log levels.
+ """
+ setLogLevelForNamespace("twisted.web2", "debug")
+ setLogLevelForNamespace("twisted.web2.dav", "error")
+
+ clearLogLevels()
+
+ self.assertEquals(logLevelForNamespace("twisted" ), defaultLogLevel)
+ self.assertEquals(logLevelForNamespace("twisted.web2" ), defaultLogLevel)
+ self.assertEquals(logLevelForNamespace("twisted.web2.dav" ), defaultLogLevel)
+ self.assertEquals(logLevelForNamespace("twisted.web2.dav.test" ), defaultLogLevel)
+ self.assertEquals(logLevelForNamespace("twisted.web2.dav.test1.test2"), defaultLogLevel)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080423/90b67165/attachment.html
More information about the calendarserver-changes
mailing list