diff --git a/odoo/netsvc.py b/odoo/netsvc.py index 6de6e65ffbd..50c6d8bb124 100644 --- a/odoo/netsvc.py +++ b/odoo/netsvc.py @@ -25,6 +25,16 @@ def log(logger, level, prefix, msg, depth=None): logger.log(level, indent+line) indent=indent_after + +class WatchedFileHandler(logging.handlers.WatchedFileHandler): + def __init__(self, filename): + super().__init__(filename) + # Unfix bpo-26789, in case the fix is present + self._builtin_open = None + + def _open(self): + return open(self.baseFilename, self.mode, encoding=self.encoding, errors=self.errors) + class PostgreSQLHandler(logging.Handler): """ PostgreSQL Logging Handler will store logs in the database, by default the current database, can be set using --log-db=DBNAME @@ -175,7 +185,7 @@ def init_logger(): if dirname and not os.path.isdir(dirname): os.makedirs(dirname) if os.name == 'posix': - handler = logging.handlers.WatchedFileHandler(logf) + handler = WatchedFileHandler(logf) else: handler = logging.FileHandler(logf) except Exception: