From 3c259f77743134037b55ed2cd201b80864143328 Mon Sep 17 00:00:00 2001 From: Konstantin Stepanov Date: Wed, 15 Dec 2010 07:40:12 +0200 Subject: [PATCH] more robust loggin of unicode messages --- dbuscron/logger.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/dbuscron/logger.py b/dbuscron/logger.py index cc96cc1..59ddf59 100644 --- a/dbuscron/logger.py +++ b/dbuscron/logger.py @@ -32,10 +32,18 @@ class Logger(object): level = property(_get_level, _set_level) def log(self, level, *message): - if level <= self.__level: - msg = ' '.join(str(m) for m in message) - ts = datetime.now().strftime('%Y-%m-%d %H:%M') - self.__out.write('[%s] %s\n' % (ts, msg)) + if level > self.__level: + return + + 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) -- 1.7.9.5