Show More
@@ -89,8 +89,6 configitem('blackbox', 'date-format', | |||
|
89 | 89 | default='%Y/%m/%d %H:%M:%S', |
|
90 | 90 | ) |
|
91 | 91 | |
|
92 | _lastlogger = None | |
|
93 | ||
|
94 | 92 | def _openlogfile(ui, vfs): |
|
95 | 93 | def rotate(oldpath, newpath): |
|
96 | 94 | try: |
@@ -125,6 +123,21 def _openlogfile(ui, vfs): | |||
|
125 | 123 | newpath=maxfiles > 0 and path + '.1') |
|
126 | 124 | return vfs(name, 'a') |
|
127 | 125 | |
|
126 | class proxylogger(object): | |
|
127 | """Forward log events to another logger to be set later""" | |
|
128 | ||
|
129 | def __init__(self): | |
|
130 | self.logger = None | |
|
131 | ||
|
132 | def tracked(self, event): | |
|
133 | return self.logger is not None and self.logger.tracked(event) | |
|
134 | ||
|
135 | def log(self, ui, event, msg, opts): | |
|
136 | assert self.logger is not None | |
|
137 | self.logger.log(ui, event, msg, opts) | |
|
138 | ||
|
139 | _lastlogger = proxylogger() | |
|
140 | ||
|
128 | 141 | class blackboxlogger(object): |
|
129 | 142 | def __init__(self, ui): |
|
130 | 143 | self._repo = None |
@@ -143,19 +156,11 class blackboxlogger(object): | |||
|
143 | 156 | return b'*' in self._trackedevents or event in self._trackedevents |
|
144 | 157 | |
|
145 | 158 | def log(self, ui, event, msg, opts): |
|
146 | global _lastlogger | |
|
147 | 159 | if self._bbvfs: |
|
148 | _lastlogger = self | |
|
149 | elif _lastlogger and _lastlogger._bbvfs: | |
|
150 | # certain logger instances exist outside the context of | |
|
151 | # a repo, so just default to the last blackbox logger that | |
|
152 | # was seen. | |
|
153 | pass | |
|
160 | _lastlogger.logger = self | |
|
154 | 161 | else: |
|
155 | 162 | return |
|
156 | _lastlogger._log(ui, event, msg, opts) | |
|
157 | 163 | |
|
158 | def _log(self, ui, event, msg, opts): | |
|
159 | 164 | default = ui.configdate('devel', 'default-date') |
|
160 | 165 | date = dateutil.datestr(default, ui.config('blackbox', 'date-format')) |
|
161 | 166 | user = procutil.getuser() |
@@ -187,7 +192,7 class blackboxlogger(object): | |||
|
187 | 192 | self._repo = repo |
|
188 | 193 | |
|
189 | 194 | def uipopulate(ui): |
|
190 |
ui.setlogger(b'blackbox', |
|
|
195 | ui.setlogger(b'blackbox', _lastlogger) | |
|
191 | 196 | |
|
192 | 197 | def reposetup(ui, repo): |
|
193 | 198 | # During 'hg pull' a httppeer repo is created to represent the remote repo. |
@@ -200,14 +205,12 def reposetup(ui, repo): | |||
|
200 | 205 | # instantiated per repository. |
|
201 | 206 | logger = blackboxlogger(ui) |
|
202 | 207 | ui.setlogger(b'blackbox', logger) |
|
203 | if logger: | |
|
204 | logger.setrepo(repo) | |
|
208 | logger.setrepo(repo) | |
|
205 | 209 | |
|
206 |
|
|
|
207 |
|
|
|
208 | global _lastlogger | |
|
209 |
|
|
|
210 | _lastlogger = logger | |
|
210 | # Set _lastlogger even if ui.log is not called. This gives blackbox a | |
|
211 | # fallback place to log | |
|
212 | if _lastlogger.logger is None: | |
|
213 | _lastlogger.logger = logger | |
|
211 | 214 | |
|
212 | 215 | repo._wlockfreeprefix.add('blackbox.log') |
|
213 | 216 |
General Comments 0
You need to be logged in to leave comments.
Login now