Come alecxe said, il formato è codificato in 1.x tessuto (come di quando sto postando questo, l'unica versione disponibile.) C'era a rejected pull request che avrebbe potuto porre rimedio questo.
Quindi, invece, abbiamo bisogno di una soluzione. Questa è una soluzione piuttosto hacky che ho scritto, ma si basa su parti non documentate di Fabric, il che significa che potrebbe rompersi nelle versioni future.
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
Da questo punto in poi, qualsiasi uscita dalla macchina remota avrà data e ora.
Ad esempio, senza questo codice l'uscita dal sudo('echo "test"')
sarebbe:
[InteractSL-DT1.usma.ibm.com] sudo: echo "test"
[InteractSL-DT1.usma.ibm.com] out: test
[InteractSL-DT1.usma.ibm.com] out:
'test'
Ma dopo aver aggiunto che, avrete ora ottiene questo:
[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'
È possibile giocare con questa base idea di ripulirlo. La riga sudo
all'inizio dell'output proviene da fabric.operations._run_command
, intorno alla riga 900. Non sono sicuro di alcun modo semplice per modificarlo.