# TODO: Handle errors?
self.stream = open(self.baseFilename, "a")
+ # Don't reopen on the next message
+ self._reopen = False
+
def RequestReopen(self):
"""Register a request to reopen the file.
"""
for handler in handlers:
handler.RequestReopen()
+ logging.info("Received request to reopen log files")
def SetupLogging(logfile, program, debug=0, stderr_logging=False,
@param root_logger: Root logger to use (for unittests)
@raise EnvironmentError: if we can't open the log file and
syslog/stderr logging is disabled
+ @rtype: callable
+ @return: Function reopening all open log files when called
"""
progname = os.path.basename(program)
# exception since otherwise we could run but without any logs at all
try:
if console_logging:
- logfile_handler = _LogHandler(open(constants.DEV_CONSOLE, "a"), logfile)
+ logfile_handler = _LogHandler(open(constants.DEV_CONSOLE, "a"),
+ logfile)
else:
logfile_handler = _ReopenableLogHandler(logfile)
+
+ logfile_handler.setFormatter(formatter)
+ if debug:
+ logfile_handler.setLevel(logging.DEBUG)
+ else:
+ logfile_handler.setLevel(logging.INFO)
+ root_logger.addHandler(logfile_handler)
+ reopen_handlers.append(logfile_handler)
except EnvironmentError:
if stderr_logging or syslog == constants.SYSLOG_YES:
logging.exception("Failed to enable logging to file '%s'", logfile)
# we need to re-raise the exception
raise
- logfile_handler.setFormatter(formatter)
- if debug:
- logfile_handler.setLevel(logging.DEBUG)
- else:
- logfile_handler.setLevel(logging.INFO)
- root_logger.addHandler(logfile_handler)
-
- reopen_handlers.append(logfile_handler)
-
return compat.partial(_ReopenLogFiles, reopen_handlers)