mercurial/ui.py
changeset 40759 fdc6eb1d650d
parent 40730 55b053af7196
child 40760 ffd574c144d2
--- a/mercurial/ui.py	Sat Nov 17 20:23:50 2018 +0900
+++ b/mercurial/ui.py	Sun Nov 11 17:34:46 2018 +0900
@@ -1521,6 +1521,7 @@
         '''
         if self.debugflag:
             self._writemsg(self._fmsgout, type='debug', *msg, **opts)
+            self.log(b'debug', b'%s', b''.join(msg))
 
     def edit(self, text, user, extra=None, editform=None, pending=None,
              repopath=None, action=None):
@@ -1740,8 +1741,14 @@
                          if l.tracked(event)]
         if not activeloggers:
             return
-        for logger in activeloggers:
-            logger.log(self, event, msg, opts)
+        # guard against recursion from e.g. ui.debug()
+        registeredloggers = self._loggers
+        self._loggers = {}
+        try:
+            for logger in activeloggers:
+                logger.log(self, event, msg, opts)
+        finally:
+            self._loggers = registeredloggers
 
     def label(self, msg, label):
         '''style msg based on supplied label