Browse Source

Merge pull request #1 from yarikoptic/servertestcase

Servertestcase -- resolving issues with logging while running on python 2.4 and 2.5
pull/124/head
Steven Hiscocks 12 years ago
parent
commit
6aadd6b7dc
  1. 32
      server/server.py

32
server/server.py

@ -97,12 +97,6 @@ class Server:
except OSError, e:
logSys.error("Unable to remove PID file: %s" % e)
logSys.info("Exiting Fail2ban")
# Shutdowns the logging.
try:
self.__loggingLock.acquire()
logging.shutdown()
finally:
self.__loggingLock.release()
def quit(self):
# Stop communication first because if jail's unban action
@ -112,8 +106,17 @@ class Server:
# are exiting)
# See https://github.com/fail2ban/fail2ban/issues/7
self.__asyncServer.stop()
# Now stop all the jails
self.stopAllJail()
# Only now shutdown the logging.
try:
self.__loggingLock.acquire()
logging.shutdown()
finally:
self.__loggingLock.release()
def addJail(self, name, backend):
self.__jails.add(name, backend)
@ -367,11 +370,20 @@ class Server:
logSys.error("Unable to log to " + target)
logSys.info("Logging to previous target " + self.__logTarget)
return False
# Removes previous handlers
for handler in logging.getLogger("fail2ban").handlers:
# Closes the handler.
# Removes previous handlers -- in reverse order since removeHandler
# alter the list in-place and that can confuses the iterable
for handler in logging.getLogger("fail2ban").handlers[::-1]:
# Remove the 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
hdlr.setFormatter(formatter)
logging.getLogger("fail2ban").addHandler(hdlr)

Loading…
Cancel
Save