擅长:python、mysql、java
<p>作为<a href="https://stackoverflow.com/a/18949464/901641">alecxe said</a>,格式是在fabric1.x中硬编码的(在我发布本文时,这是唯一可用的版本)。在</p>
<p>所以我们需要一个解决办法。这是我写的一个相当老套的解决方案,但它依赖于Fabric的未记录部分,这意味着它可能会在将来的版本中崩溃。在</p>
<pre><code>from fabric.io import OutputLooper
from datetime import datetime
def newFlush(self, text):
stamp = datetime.now().strftime("%a %b %d %H:%M:%S - ")
print(stamp + text)
OutputLooper._flush = newFlush
</code></pre>
<p>从这一点开始,来自远程计算机的任何输出都将具有时间戳。在</p>
<p>例如,如果没有此代码,<code>sudo('echo "test"')</code>的输出将是:</p>
^{pr2}$
<p>但添加后,您将得到:</p>
<pre><code>[InteractSL-DT1.usma.ibm.com] sudo: echo "test"
Fri Jan 02 12:54:49 - [InteractSL-DT1.usma.ibm.com] out:
Fri Jan 02 12:54:49 - test
Fri Jan 02 12:54:49 - [InteractSL-DT1.usma.ibm.com] out:
Fri Jan 02 12:54:49 -
'test'
</code></pre>
<p>你可以利用这个基本的想法来清理它。输出开始处的<code>sudo</code>行来自<code>fabric.operations._run_command</code>,大约是第900行。我不确定你能用什么简单的方法来修改它。在</p>