Jako alecxe said format jest zakodowany na stałe w Fabric 1.x (od kiedy publikuję to, jedyna dostępna wersja.) Był a rejected pull request, który mógł to naprawić.
Zamiast tego potrzebujemy obejść. Jest to dość hacky rozwiązanie, które napisałem, ale bazuje na nieudokumentowanych częściach Fabric, co oznacza, że może się zepsuć w przyszłych wersjach.
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
Od tego momentu każde wyjście z komputera zdalnego będzie miało znaczniki czasu.
Na przykład, bez tego kodu wyjście z sudo('echo "test"')
byłoby:
[InteractSL-DT1.usma.ibm.com] sudo: echo "test"
[InteractSL-DT1.usma.ibm.com] out: test
[InteractSL-DT1.usma.ibm.com] out:
'test'
Ale po dodając, że będziesz teraz uzyskać to:
[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'
Możesz poeksperymentować z tym podstawowym pomysł, żeby to posprzątać. Linia sudo
na początku wyjścia pochodzi z fabric.operations._run_command
, około linii 900. Nie jestem pewien jakiejkolwiek prostej metody modyfikacji.