mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
addons: dhcp: enable syslog at boot & fix syslog log-level
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
This commit is contained in:
@@ -324,17 +324,36 @@ class dhcp(Addon, moduleBase):
|
||||
if not self.is_dhcp_allowed_on(ifaceobj, syntax_check=False):
|
||||
return
|
||||
|
||||
disable_syslog_on_exit = False
|
||||
log_manager = LogManager.get_instance()
|
||||
|
||||
syslog_log_level = logging.INFO
|
||||
disable_syslog_on_exit = True
|
||||
try:
|
||||
if not ifupdownflags.flags.PERFMODE:
|
||||
disable_syslog_on_exit = not LogManager.get_instance().is_syslog_enabled_syslog()
|
||||
LogManager.get_instance().enable_syslog()
|
||||
self.logger.info("%s: enabling syslog for dhcp configuration" % ifaceobj.name)
|
||||
# if syslog is already enabled we shouldn't disable it
|
||||
if log_manager.is_syslog_enabled():
|
||||
# save current syslog level
|
||||
syslog_log_level = log_manager.get_syslog_log_level()
|
||||
# prevent syslog from being disabled on exit
|
||||
disable_syslog_on_exit = False
|
||||
else:
|
||||
# enabling syslog
|
||||
log_manager.enable_syslog()
|
||||
# syslog will be disabled once we are done
|
||||
disable_syslog_on_exit = True
|
||||
|
||||
# update the current syslog handler log level if higher than INFO
|
||||
if syslog_log_level >= logging.INFO:
|
||||
log_manager.set_level_syslog(logging.INFO)
|
||||
|
||||
self.logger.info("%s: enabling syslog for dhcp configuration" % ifaceobj.name)
|
||||
|
||||
if operation == 'query-checkcurr':
|
||||
op_handler(self, ifaceobj, query_ifaceobj)
|
||||
else:
|
||||
op_handler(self, ifaceobj)
|
||||
finally:
|
||||
# disable syslog handler or re-set the proper log-level
|
||||
if disable_syslog_on_exit:
|
||||
LogManager.get_instance().disable_syslog()
|
||||
log_manager.get_instance().disable_syslog()
|
||||
else:
|
||||
log_manager.set_level_syslog(syslog_log_level)
|
||||
|
@@ -121,7 +121,11 @@ class LogManager:
|
||||
|
||||
for handler in self.__root_logger.handlers:
|
||||
handler.setLevel(log_level)
|
||||
self.__root_logger.setLevel(log_level)
|
||||
|
||||
# make sure that the root logger has the lowest logging level possible
|
||||
# otherwise some messages might not go through
|
||||
if self.__root_logger.level > log_level:
|
||||
self.__root_logger.setLevel(log_level)
|
||||
|
||||
def enable_console(self):
|
||||
""" Add console handler to root logger """
|
||||
@@ -141,9 +145,19 @@ class LogManager:
|
||||
if self.__syslog_handler:
|
||||
self.__root_logger.removeHandler(self.__syslog_handler)
|
||||
|
||||
def is_syslog_enabled_syslog(self):
|
||||
def is_syslog_enabled(self):
|
||||
return self.__syslog_handler in self.__root_logger.handlers
|
||||
|
||||
def get_syslog_log_level(self):
|
||||
return self.__syslog_handler.level if self.__syslog_handler else None
|
||||
|
||||
def set_level_syslog(self, level):
|
||||
if self.__syslog_handler:
|
||||
self.__syslog_handler.setLevel(level)
|
||||
|
||||
if self.__root_logger.level > level:
|
||||
self.__root_logger.setLevel(level)
|
||||
|
||||
def close_log_stream(self):
|
||||
""" Close socket to disconnect client.
|
||||
We first have to perform this little hack: it seems like the socket is
|
||||
|
Reference in New Issue
Block a user