標準出力に出力されるログ等にタイムスタンプをつけたい場合、awkを使って以下のようにする。
% (sleep 3; echo hogehoge) | awk '{ print strftime("[%Y/%m/%d %H:%M:%S]"), $0 } { fflush() }'
[2017/02/24 00:29:59] hogehoge
ミリ秒までつけたい場合、awkは対応していないので、pythonあたりを使う。
以下をファイルとして保存。
import sys
from datetime import datetime
for line in iter(sys.stdin.readline, ""):
d=datetime.now()
print(d.strftime("%Y/%m/%d %H:%M:%S.")+("%06d"%d.microsecond)+" "+line, end='', flush=True)
以下で実行。
% (sleep 3; echo hogehoge) | python timestamp.py