diff -r 6a75363f834a -r 368ecbf734af mercurial/commandserver.py --- a/mercurial/commandserver.py Sat Nov 10 18:16:33 2018 +0900 +++ b/mercurial/commandserver.py Sat Nov 10 18:19:34 2018 +0900 @@ -208,15 +208,10 @@ 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 @@ 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