equal
deleted
inserted
replaced
128 return vfs(name, 'a') |
128 return vfs(name, 'a') |
129 |
129 |
130 class blackboxlogger(object): |
130 class blackboxlogger(object): |
131 def __init__(self, ui): |
131 def __init__(self, ui): |
132 self._repo = None |
132 self._repo = None |
|
133 self._inlog = False |
133 self.track = ui.configlist('blackbox', 'track') |
134 self.track = ui.configlist('blackbox', 'track') |
134 |
135 |
135 @property |
136 @property |
136 def _bbvfs(self): |
137 def _bbvfs(self): |
137 vfs = None |
138 vfs = None |
156 else: |
157 else: |
157 return |
158 return |
158 _lastlogger._log(ui, event, msg, opts) |
159 _lastlogger._log(ui, event, msg, opts) |
159 |
160 |
160 def _log(self, ui, event, msg, opts): |
161 def _log(self, ui, event, msg, opts): |
161 if getattr(self, '_bbinlog', False): |
162 if self._inlog: |
162 # recursion and failure guard |
163 # recursion and failure guard |
163 return |
164 return |
164 self._bbinlog = True |
165 self._inlog = True |
165 default = ui.configdate('devel', 'default-date') |
166 default = ui.configdate('devel', 'default-date') |
166 date = dateutil.datestr(default, ui.config('blackbox', 'date-format')) |
167 date = dateutil.datestr(default, ui.config('blackbox', 'date-format')) |
167 user = procutil.getuser() |
168 user = procutil.getuser() |
168 pid = '%d' % procutil.getpid() |
169 pid = '%d' % procutil.getpid() |
169 formattedmsg = msg[0] % msg[1:] |
170 formattedmsg = msg[0] % msg[1:] |
185 with _openlogfile(ui, self._bbvfs) as fp: |
186 with _openlogfile(ui, self._bbvfs) as fp: |
186 fp.write(fmt % args) |
187 fp.write(fmt % args) |
187 except (IOError, OSError) as err: |
188 except (IOError, OSError) as err: |
188 ui.debug('warning: cannot write to blackbox.log: %s\n' % |
189 ui.debug('warning: cannot write to blackbox.log: %s\n' % |
189 encoding.strtolocal(err.strerror)) |
190 encoding.strtolocal(err.strerror)) |
190 # do not restore _bbinlog intentionally to avoid failed |
191 # do not restore _inlog intentionally to avoid failed |
191 # logging again |
192 # logging again |
192 else: |
193 else: |
193 self._bbinlog = False |
194 self._inlog = False |
194 |
195 |
195 def setrepo(self, repo): |
196 def setrepo(self, repo): |
196 self._repo = repo |
197 self._repo = repo |
197 |
198 |
198 def wrapui(ui): |
199 def wrapui(ui): |