2017-10-08 3 views
0

ファブリックのロガーモジュールの仕組みを理解しようとしています。私は、コマンドライン上で実行 :もちろんPythonファブリックロギングエラー

$ fabfile -I task-1 

私は私に接続されているリモートホストのそれぞれのタスクの実行を示すコンソールに出力を得ます。 Buエラーの出力をローカルマシンのログファイルにリダイレクトしてタイムスタンプを付けるにはどうすればよいですか? ファブリックのロガーモジュールはこれを提供していますか?あるいは、私はPythonのロギングモジュールを使うべきですか?いずれか、私はどのように実装するか分からない。

答えて

0

残念ながら、ファブリック(issue #57を参照してください)ファイルへのロギング

を備えていません。しかし、私はかなりいい見つけるloggingモジュールを使用してこの問題を回避するには、そこにあります。

まず、あなたのロガーを設定します。その後、

import logging 

logging.basicConfig(
    level=logging.DEBUG, format='%(asctime)s:%(levelname)s:%(name)s:%(message)s', 
    filename="out.log", 
    filemode='a' 
) 

そして、このようなtry/catchブロックでエラーをスローする可能性があり、あなたのコードの部分をラップ:

 
try: 
    #code 
except: 
    logging.exception('Error:') 

ロガーが'Error:'を印刷します例外のスタックトレースは "out.log"になります