Comments
Patch
@@ -208,15 +208,10 @@ class server(object):
def __init__(self, ui, repo, fin, fout):
self.cwd = encoding.getcwd()
- # developer config: cmdserver.log
- logpath = ui.config("cmdserver", "log")
- if logpath:
+ if ui.config("cmdserver", "log") == '-':
global logfile
- if logpath == '-':
- # write log on a special 'd' (debug) channel
- logfile = channeledoutput(fout, 'd')
- else:
- logfile = open(logpath, 'a')
+ # switch log stream to the 'd' (debug) channel
+ logfile = channeledoutput(fout, 'd')
if repo:
# the ui here is really the repo ui so take its baseui so we don't
@@ -361,6 +356,24 @@ class server(object):
return 0
+def setuplogging(ui):
+ """Set up server logging facility
+
+ If cmdserver.log is '-', log messages will be sent to the 'd' channel
+ while a client is connected. Otherwise, messages will be written to
+ the stderr of the server process.
+ """
+ # developer config: cmdserver.log
+ logpath = ui.config(b'cmdserver', b'log')
+ if not logpath:
+ return
+
+ global logfile
+ if logpath == b'-':
+ logfile = ui.ferr
+ else:
+ logfile = open(logpath, 'ab')
+
class pipeservice(object):
def __init__(self, ui, repo, opts):
self.ui = ui
@@ -155,9 +155,11 @@ def runservice(opts, parentfn=None, init
def _createcmdservice(ui, repo, opts):
mode = opts['cmdserver']
try:
- return _cmdservicemap[mode](ui, repo, opts)
+ servicefn = _cmdservicemap[mode]
except KeyError:
raise error.Abort(_('unknown mode %s') % mode)
+ commandserver.setuplogging(ui)
+ return servicefn(ui, repo, opts)
def _createhgwebservice(ui, repo, opts):
# this way we can check if something was given in the command-line