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
This commit is contained in:
@@ -245,11 +245,12 @@ class NovaRootLogger(NovaLogger):
|
|||||||
def setup_from_flags(self):
|
def setup_from_flags(self):
|
||||||
"""Setup logger from flags."""
|
"""Setup logger from flags."""
|
||||||
global _filelog
|
global _filelog
|
||||||
|
if self.syslog:
|
||||||
|
self.removeHandler(self.syslog)
|
||||||
|
self.syslog = None
|
||||||
if FLAGS.use_syslog:
|
if FLAGS.use_syslog:
|
||||||
self.syslog = SysLogHandler(address='/dev/log')
|
self.syslog = SysLogHandler(address='/dev/log')
|
||||||
self.addHandler(self.syslog)
|
self.addHandler(self.syslog)
|
||||||
elif self.syslog:
|
|
||||||
self.removeHandler(self.syslog)
|
|
||||||
logpath = _get_log_file_path()
|
logpath = _get_log_file_path()
|
||||||
if logpath:
|
if logpath:
|
||||||
self.removeHandler(self.streamlog)
|
self.removeHandler(self.streamlog)
|
||||||
|
|||||||
Reference in New Issue
Block a user