better log messages
[dbuscron] / dbuscron / logger.py
index eccbdc0..59ddf59 100644 (file)
@@ -31,23 +31,34 @@ class Logger(object):
         self.__level = int(value)
     level = property(_get_level, _set_level)
 
-    def log(self, level, message):
-        if level <= self.__level:
-            ts = datetime.now().strftime('%Y-%m-%d %H:%M')
-            self.__out.write('[%s] %s\n' % (ts, message))
+    def log(self, level, *message):
+        if level > self.__level:
+            return
 
-    def debug(self, message):
-        self.log(self.DEBUG, message)
+        def ucode(m):
+            try:
+                return str(m)
+            except UnicodeEncodeError:
+                return unicode(m).encode('utf-8')
+
+        msg = ' '.join(map(ucode, message))
+        ts = datetime.now().strftime('%Y-%m-%d %H:%M')
+        self.__out.write('[%s] %s\n' % (ts, msg))
+
+    def debug(self, *message):
+        self.log(self.DEBUG, *message)
     
-    def info(self, message):
-        self.log(self.INFO, message)
+    def info(self, *message):
+        self.log(self.INFO, *message)
     
-    def warn(self, message):
-        self.log(self.WARNING, message)
+    def warn(self, *message):
+        self.log(self.WARNING, *message)
+
+    def error(self, *message):
+        self.log(self.ERROR, *message)
 
-    def error(self, message):
-        self.log(self.ERROR, message)
+    def panic(self, *message):
+        self.log(self.PANIC, *message)
 
-    def panic(self, message):
-        self.log(self.PANIC, message)
+    __call__ = info