Wrap log file rotation in a try block. PiperOrigin-RevId: 187207883
diff --git a/src/TulsiGenerator/Scripts/tulsi_logging.py b/src/TulsiGenerator/Scripts/tulsi_logging.py index fccba63..0f92467 100755 --- a/src/TulsiGenerator/Scripts/tulsi_logging.py +++ b/src/TulsiGenerator/Scripts/tulsi_logging.py
@@ -17,6 +17,7 @@ import logging import logging.handlers import os +import sys class Logger(object): @@ -35,11 +36,20 @@ self._logger = logging.getLogger('tulsi_logging') self._logger.setLevel(logging.INFO) - file_handler = logging.handlers.RotatingFileHandler(logfile, backupCount=20) - file_handler.setLevel(logging.INFO) - # Create a new log file for each build. - file_handler.doRollover() - self._logger.addHandler(file_handler) + try: + file_handler = logging.handlers.RotatingFileHandler(logfile, + backupCount=20) + file_handler.setLevel(logging.INFO) + # Create a new log file for each build. + file_handler.doRollover() + self._logger.addHandler(file_handler) + except (IOError, OSError) as err: + filename = 'none' + if hasattr(err, 'filename'): + filename = err.filename + sys.stderr.write('Failed to set up logging to file: %s (%s).\n' % + (os.strerror(err.errno), filename)) + sys.stderr.flush() console = logging.StreamHandler() console.setLevel(logging.INFO)