Mercurial > hg
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 |