hgext/blackbox.py
changeset 40758 eb5948f29c60
parent 40730 55b053af7196
child 40759 fdc6eb1d650d
equal deleted inserted replaced
40757:2f14d1bbc9a7 40758:eb5948f29c60
   157             return
   157             return
   158         _lastlogger._log(ui, event, msg, opts)
   158         _lastlogger._log(ui, event, msg, opts)
   159 
   159 
   160     def _log(self, ui, event, msg, opts):
   160     def _log(self, ui, event, msg, opts):
   161         if self._inlog:
   161         if self._inlog:
   162             # recursion and failure guard
   162             # recursion guard
   163             return
   163             return
   164         self._inlog = True
   164         self._inlog = True
   165         default = ui.configdate('devel', 'default-date')
   165         default = ui.configdate('devel', 'default-date')
   166         date = dateutil.datestr(default, ui.config('blackbox', 'date-format'))
   166         date = dateutil.datestr(default, ui.config('blackbox', 'date-format'))
   167         user = procutil.getuser()
   167         user = procutil.getuser()
   183             fmt = '%s %s @%s%s (%s)%s> %s'
   183             fmt = '%s %s @%s%s (%s)%s> %s'
   184             args = (date, user, rev, changed, pid, src, formattedmsg)
   184             args = (date, user, rev, changed, pid, src, formattedmsg)
   185             with _openlogfile(ui, self._bbvfs) as fp:
   185             with _openlogfile(ui, self._bbvfs) as fp:
   186                 fp.write(fmt % args)
   186                 fp.write(fmt % args)
   187         except (IOError, OSError) as err:
   187         except (IOError, OSError) as err:
       
   188             # deactivate this to avoid failed logging again
       
   189             self._repo = None
   188             ui.debug('warning: cannot write to blackbox.log: %s\n' %
   190             ui.debug('warning: cannot write to blackbox.log: %s\n' %
   189                      encoding.strtolocal(err.strerror))
   191                      encoding.strtolocal(err.strerror))
   190             # do not restore _inlog intentionally to avoid failed
       
   191             # logging again
       
   192         else:
   192         else:
   193             self._inlog = False
   193             self._inlog = False
   194 
   194 
   195     def setrepo(self, repo):
   195     def setrepo(self, repo):
   196         self._repo = repo
   196         self._repo = repo