logging--ログ - 転載03

Pythonのロギングモジュールロギングについて学ぶ、あなたは非常に詳細な記述は、次のブログを参照することができます

https://www.cnblogs.com/yyds/p/6901864.html

https://www.cnblogs.com/goodhacker/p/3355660.html

https://cuiqingcai.com/6080.html

 

練習:ログモジュールは、インターフェースリクエスト+ Excelのテストフレームワークに追加され

フォルダのログ、出力を格納するためのログファイルを作成します。utilsの中logger.pyは、ツールを作成し、メソッド呼び出しのログをパッケージ

次のようにlogger.py読み取り

コードをコピー
# - * -コーディング:UTF-8 - * - 
インポートログ
のインポートOS 
のインポートがGETCWD utilsのから


開き、log_pathを、= os.path.dirname(getcwd.get_cwd())
を印刷(開き、log_path、)
クラスのLogger:
    DEF __init __(自己、loggerName): 
ロガー作成
        self.logger = logging.getLogger(loggerName)
        self.logger.setLevel(logging.DEBUG) 
ログファイルの書き込みのため、ハンドラを作成
        開き、log_pathを= os.path.dirnameを(getcwd.get_cwd()) + " /ログ/「#出力ファイルのパスを指定して、フォルダは、必ず追加することを注意ログは/、それ以外の場合はエラー出力パスにつながる、ログはファイル名の一部になる
        LOGNAME =開き、log_path + 『out.log』#出力を指定しますログファイル名
        FH = logging.FileHandler(LOGNAME、コード= 'UTF-8')# ログ文字化けテキスト出力予防、コードUTF-8フォーマットを指定
        fh.setLevel(logging.DEBUG)を

        #ハンドラを作成し、コンソールにログを出力するため
        CH = logging.StreamHandler()
        ch.setLevel(logging.DEBUG) 
ハンドラ定義された形式の出力
        フォーマッタ= logging.Formatter(「%(いるasctime )S - %(名前)S - %(levelname)S - %(メッセージ)S「)
        fh.setFormatter(フォーマッタ)
        ch.setFormatter(フォーマッタ)

        #Addをロガーにハンドラ
        self.logger.addHandler(FH)
        self.logger.addHandler(CH)


    DEF (自己)GET_LOG:
"" "" "の関数コールバックロガー定義" 戻りself.loggerを IF __name__ == '__main__': 。T =ロガー( "HMK")は、()デバッグ(「%SはユーザであるがGET_LOG。 loging「% 'jeck')
コードをコピー

 

主な機能run_main.pyで使用されるログ

コードをコピー
#のコード:UTF-8 著者:HMK 

base.mainインポートrunMethodのようになりから
get_datas.get_data輸入のGetDataから
utils.handle_excel輸入HandleExcelのから
の輸入JSON 
utils.loggerインポートロガーから


:クラスRunMain 
    デフ__init __(自己):
        "" "实例化写好的类、备用""」
        self.run_method = runMethodのようになり()
        self.get_data =のGetData()
        self.excel = HandleExcel()
        self.logger =ロガー(__ name__)

    デフ(自己)を実行します:
        数= self.get_data。 get_nrows() プリント(数)
        の範囲(1カウント)での私のために: 
            優先順位= self.get_data.get_priority(I)#获取用例的优先级優先
            URL = self.get_data.get_url(I)#获取用例的URL 
            メソッド= self.get_data.get_method(I)#取得要求メソッド
            のparams = self.get_data.get_params(I)#取得パラメータ(データはここで取り出され、文字列形式)
            辞書に即ちparams_load =取得したパラメータ#1デシリアライゼーションにjson.loads(paramsは)、
            except_value = self.get_data.get_except_value(I)#は、期待される結果値を得る
            IF優先== 'H':
                R&LT = self.run_method.run_main(メソッド、URL、params_load 、ヘッダ=なし)# ユースケースは、高優先度、実行された場合
                #プリント(R&LT)self.logger.get_log()。デバッグ( '第' + STR(I) + 'インターフェイスの結果返す:%s'を、コンテンツに応じてR)#出力インタフェース 
                #プリント(型(R&LT))
                IFにおけるR&LT except_value: プリント(self.get_data.get_caseSeq(I)+ 'テストに合格')
               
                    self.logger.get_log()。デバッグ( '最初の' + STR(I)+ 'インターフェース・テストを通じて')
                    #1 self.get_data.write_values(I 'PASS')#コールget_data.pyファイルwrite_values()メソッド
                    self.excel.write_value(I、11 'パス ')#1 のコールhandle_excel.pyファイルwrite_value()メソッド
                他:
                    #印刷(self.get_data.get_caseSeq(I)+ 'の失敗')                 self.logger.get_log ().DEBUG( '第' + STR(I)+ 'インターフェーステストが通過しない')
                    #1 self.get_data.write_values(I 'FAIL')
                    self.excel.write_value(I ,. 11、 '失敗')
__name__ IF == '__main__':
    T = RunMain()
    t.run()
   

コードをコピー

ログの内容をプリントアウト

あなたは、実行するコードのコンテンツを視聴するには、印刷出力で置き換えることができるように

おすすめ

転載: www.cnblogs.com/xiaobaibailongma/p/12417046.html