From 4be5abe3a8974e955ac15674d24b4677546319e2 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Tue, 1 Nov 2011 11:54:59 -0700 Subject: [PATCH] Bug 884863: nova logs everything to syslog twice Fix double-registration of the syslog handler. NovaRootLogger.setup_from_flags is called twice from log.setup() -- once through NovaRootLogger.__init__ and once through reset(). setup_from_flags wasn't idempotent, so this resulted in the syslog handler being registered twice. Rather than fix the twisty-turny maze that is setup(), I've opted to make setup_from_flags idempotent in this regard, by always unregistering the syslog handler before doing anything else. Change-Id: I59ad61751e1a19d2cbb73dc1deea9c708d4c5032 --- nova/log.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nova/log.py b/nova/log.py index 1e04f755..ec3fa67b 100644 --- a/nova/log.py +++ b/nova/log.py @@ -245,11 +245,12 @@ class NovaRootLogger(NovaLogger): def setup_from_flags(self): """Setup logger from flags.""" global _filelog + if self.syslog: + self.removeHandler(self.syslog) + self.syslog = None if FLAGS.use_syslog: self.syslog = SysLogHandler(address='/dev/log') self.addHandler(self.syslog) - elif self.syslog: - self.removeHandler(self.syslog) logpath = _get_log_file_path() if logpath: self.removeHandler(self.streamlog)