[CalendarServer-changes] [11234] CalendarServer/trunk/twext/python/log.py

source_changes at macosforge.org source_changes at macosforge.org
Wed May 22 15:17:38 PDT 2013


Revision: 11234
          http://trac.calendarserver.org//changeset/11234
Author:   wsanchez at apple.com
Date:     2013-05-22 15:17:38 -0700 (Wed, 22 May 2013)
Log Message:
-----------
Logger.msg() is now compatible with twisted's.

Modified Paths:
--------------
    CalendarServer/trunk/twext/python/log.py

Modified: CalendarServer/trunk/twext/python/log.py
===================================================================
--- CalendarServer/trunk/twext/python/log.py	2013-05-21 21:26:16 UTC (rev 11233)
+++ CalendarServer/trunk/twext/python/log.py	2013-05-22 22:17:38 UTC (rev 11234)
@@ -63,6 +63,7 @@
 import inspect
 import logging
 
+from twisted.python.reflect import safe_str
 from twisted.python.log import msg as twistedLogMessage
 from twisted.python.log import addObserver, removeObserver
 
@@ -211,12 +212,16 @@
         kwargs["logLevel"] = logLevel
         kwargs["namespace"] = self.namespace
 
-        twistedLogMessage(
-            # FIXME: This formatting should be done by the log observer(s)
-            "[%s#%s] %s" % (self.namespace, level, message),
-            **kwargs
-        )
+        if message:
+            kwargs["legacyMessage"] = message
+            kwargs["format"] = "%(legacyMessage)s"
 
+        if "format" in kwargs:
+            prefix = "[%(namespace)s#%(level)s] "
+            kwargs["format"] = "%s%s" % (prefix, kwargs["format"])
+
+        twistedLogMessage(**kwargs)
+
     def level(self):
         """
         @return: the logging level for this logger's namespace.
@@ -239,6 +244,15 @@
         return cmpLogLevels(self.level(), level) <= 0
 
 
+    def msg(self, *message, **kw):
+        if message:
+            message = " ".join(map(safe_str, message))
+        else:
+            message = None
+        return self.emit("info", message, **kw)
+
+
+
 class LoggingMixIn (object):
     """
     Mix-in class for logging methods.
@@ -261,7 +275,8 @@
 
     logger = property(_getLogger, _setLogger)
 
-for level in logLevels:
+
+def bindEmit(level):
     doc = """
     Emit a log message at log level C{%s}.
     @param message: The message to emit.
@@ -270,32 +285,29 @@
     #
     # Attach methods to Logger
     #
-    def log_emit(self, message, __level__=level, raiseException=None, **kwargs):
-        self.emit(__level__, message, **kwargs)
+    def log_emit(self, message, raiseException=None, **kwargs):
+        self.emit(level, message, **kwargs)
         if raiseException:
             raise raiseException(message)
 
-    def will_emit(self, __level__=level):
-        return self.willLogAtLevel(__level__)
+    def will_emit(self):
+        return self.willLogAtLevel(level)
 
     log_emit.__doc__ = doc
 
     setattr(Logger, level, log_emit)
     setattr(Logger, level + "_enabled", property(will_emit))
 
-    del log_emit
-    del will_emit
-
     #
     # Attach methods to LoggingMixIn
     #
-    def log_emit(self, message, __level__=level, raiseException=None, **kwargs):
-        self.logger.emit(__level__, message, **kwargs)
+    def log_emit(self, message, raiseException=None, **kwargs):
+        self.logger.emit(level, message, **kwargs)
         if raiseException:
             raise raiseException(message)
 
-    def will_emit(self=log_emit, __level__=level):
-        return self.logger.willLogAtLevel(__level__)
+    def will_emit(self=log_emit):
+        return self.logger.willLogAtLevel(level)
 
     log_emit.__doc__ = doc
     log_emit.enabled = will_emit
@@ -303,15 +315,16 @@
     setattr(LoggingMixIn, "log_" + level, log_emit)
     setattr(LoggingMixIn, "log_" + level + "_enabled", property(will_emit))
 
-    del log_emit
-    del will_emit
 
+for level in logLevels: 
+    bindEmit(level)
 del level
 
+
 # Add some compatibility with twisted's log module
-Logger.msg = Logger.info
 Logger.err = Logger.error
 
+
 ##
 # Errors
 ##
@@ -321,6 +334,7 @@
         super(InvalidLogLevelError, self).__init__(str(level))
         self.level = level
 
+
 ##
 # Observers
 ##
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130522/54d4d657/attachment.html>


More information about the calendarserver-changes mailing list