diff --git a/gunicorn/glogging.py b/gunicorn/glogging.py index d15925fd..1c5c603b 100644 --- a/gunicorn/glogging.py +++ b/gunicorn/glogging.py @@ -74,6 +74,16 @@ class LazyWriter(object): self.lock.release() return self.fileobj + def close(self): + if self.fileobj: + self.lock.acquire() + try: + if self.fileobj: + self.fileobj.close() + self.fileobj = None + finally: + self.lock.release() + def write(self, text): fileobj = self.open() fileobj.write(text) @@ -239,6 +249,10 @@ class Logger(object): def reopen_files(self): + if self.cfg.errorlog != "-": + # Close stderr & stdout if they are redirected to error log file + sys.stderr.close() + sys.stdout.close() for log in loggers(): for handler in log.handlers: if isinstance(handler, logging.FileHandler):