comparison hgext/blackbox.py @ 40758:eb5948f29c60

blackbox: change the way of deactivating the logger on write error This prepares for the upcoming code move. The recursion guard will be ported to the core ui.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 17 Nov 2018 20:23:50 +0900
parents 55b053af7196
children fdc6eb1d650d
comparison
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