mirror of https://github.com/fail2ban/fail2ban
Merge pull request #1 from yarikoptic/servertestcase
Servertestcase -- resolving issues with logging while running on python 2.4 and 2.5pull/124/head
commit
6aadd6b7dc
|
@ -97,12 +97,6 @@ class Server:
|
||||||
except OSError, e:
|
except OSError, e:
|
||||||
logSys.error("Unable to remove PID file: %s" % e)
|
logSys.error("Unable to remove PID file: %s" % e)
|
||||||
logSys.info("Exiting Fail2ban")
|
logSys.info("Exiting Fail2ban")
|
||||||
# Shutdowns the logging.
|
|
||||||
try:
|
|
||||||
self.__loggingLock.acquire()
|
|
||||||
logging.shutdown()
|
|
||||||
finally:
|
|
||||||
self.__loggingLock.release()
|
|
||||||
|
|
||||||
def quit(self):
|
def quit(self):
|
||||||
# Stop communication first because if jail's unban action
|
# Stop communication first because if jail's unban action
|
||||||
|
@ -112,8 +106,17 @@ class Server:
|
||||||
# are exiting)
|
# are exiting)
|
||||||
# See https://github.com/fail2ban/fail2ban/issues/7
|
# See https://github.com/fail2ban/fail2ban/issues/7
|
||||||
self.__asyncServer.stop()
|
self.__asyncServer.stop()
|
||||||
|
|
||||||
# Now stop all the jails
|
# Now stop all the jails
|
||||||
self.stopAllJail()
|
self.stopAllJail()
|
||||||
|
|
||||||
|
# Only now shutdown the logging.
|
||||||
|
try:
|
||||||
|
self.__loggingLock.acquire()
|
||||||
|
logging.shutdown()
|
||||||
|
finally:
|
||||||
|
self.__loggingLock.release()
|
||||||
|
|
||||||
|
|
||||||
def addJail(self, name, backend):
|
def addJail(self, name, backend):
|
||||||
self.__jails.add(name, backend)
|
self.__jails.add(name, backend)
|
||||||
|
@ -367,11 +370,20 @@ class Server:
|
||||||
logSys.error("Unable to log to " + target)
|
logSys.error("Unable to log to " + target)
|
||||||
logSys.info("Logging to previous target " + self.__logTarget)
|
logSys.info("Logging to previous target " + self.__logTarget)
|
||||||
return False
|
return False
|
||||||
# Removes previous handlers
|
# Removes previous handlers -- in reverse order since removeHandler
|
||||||
for handler in logging.getLogger("fail2ban").handlers:
|
# alter the list in-place and that can confuses the iterable
|
||||||
# Closes the handler.
|
for handler in logging.getLogger("fail2ban").handlers[::-1]:
|
||||||
|
# Remove the handler.
|
||||||
logging.getLogger("fail2ban").removeHandler(handler)
|
logging.getLogger("fail2ban").removeHandler(handler)
|
||||||
handler.close()
|
# And try to close -- it might be closed already
|
||||||
|
try:
|
||||||
|
handler.flush()
|
||||||
|
handler.close()
|
||||||
|
except ValueError:
|
||||||
|
if sys.version_info >= (2,6):
|
||||||
|
raise
|
||||||
|
# is known to be thrown after logging was shutdown once
|
||||||
|
# with older Pythons -- seems to be safe to ignore there
|
||||||
# tell the handler to use this format
|
# tell the handler to use this format
|
||||||
hdlr.setFormatter(formatter)
|
hdlr.setFormatter(formatter)
|
||||||
logging.getLogger("fail2ban").addHandler(hdlr)
|
logging.getLogger("fail2ban").addHandler(hdlr)
|
||||||
|
|
Loading…
Reference in New Issue