diff --git a/gunicorn/glogging.py b/gunicorn/glogging.py index d312f770..5cc064ba 100644 --- a/gunicorn/glogging.py +++ b/gunicorn/glogging.py @@ -206,18 +206,24 @@ class Logger(object): for handler in log.handlers: if isinstance(handler, logging.FileHandler): handler.acquire() - handler.stream.close() - handler.stream = open(handler.baseFilename, - handler.mode) - handler.release() + try: + if handler.stream: + handler.stream.close() + handler.stream = open(handler.baseFilename, + handler.mode) + finally: + handler.release() def close_on_exec(self): for log in (self.error_log, self.access_log): for handler in log.handlers: if isinstance(handler, logging.FileHandler): handler.acquire() - util.close_on_exec(handler.stream.fileno()) - handler.release() + try: + if handler.stream: + util.close_on_exec(handler.stream.fileno()) + finally: + handler.release() def _get_gunicorn_handler(self, log):