Là alecxe said, định dạng được mã hóa cứng trong Vải 1.x (kể từ khi tôi đăng bài này, phiên bản duy nhất có sẵn.) Có a rejected pull request có thể khắc phục được điều này.
Vì vậy, thay vào đó chúng ta cần một công việc xung quanh. Đây là một giải pháp khá hacky mà tôi đã viết, nhưng nó dựa trên các phần không có giấy tờ của Fabric, có nghĩa là nó có thể phá vỡ trong các phiên bản sau này.
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
Từ thời điểm này trở đi, mọi đầu ra từ máy từ xa sẽ có dấu thời gian.
Ví dụ, không có mã này đầu ra từ sudo('echo "test"')
sẽ là:
[InteractSL-DT1.usma.ibm.com] sudo: echo "test"
[InteractSL-DT1.usma.ibm.com] out: test
[InteractSL-DT1.usma.ibm.com] out:
'test'
Nhưng sau khi nói thêm rằng, bây giờ bạn sẽ có được điều này:
[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'
Bạn có thể chơi xung quanh với cơ bản này ý tưởng để làm sạch nó. Đường dây sudo
khi bắt đầu xuất phát từ fabric.operations._run_command
, quanh dòng 900. Tôi không chắc chắn về bất kỳ cách đơn giản nào bạn có thể sửa đổi nó.