パイソン---ロギングモジュール

序文

        実行の自動化スクリプトプロセスでは、我々は多くの場合、テストケースやテストケース結果の実行を監視する必要があります。我々は結果を印刷コンソールを表示して、コードを出力する傾向があります実行する前に、最大の欠点についてコンソールの情報を表示し、結果を保存することができないということです。あなたが道を印刷するとは対照的に、我々は多くの場合、ログをログ使用結果を表示するために必要なすべての方法は、ログには、次のような利点を提供します

         あなたはデバッグ情報の多くを表示することができないので、1機密情報は、出力データのレベルに設定することができます

         2.print情報は、コンソール上に表示することができ、ログ情報は、コンソールおよび指定されたログファイルに表示することができます。(でも、複数のファイルに表示されます)

         3.情報を提供することが可能なフォーマットを入力します。プリントは、コンテンツのみをプリントアウトすることができますが、我々は時間のログを設定することができ、コンテンツなどのフォーマット

1つのロギングモジュールの紹介

Pythonのロギングモジュールは、主に、操作ログを出力するために、標準モジュールを構築され、ログ出力レベルを設定することができるログ・パス保存、ロールバックログファイルのように、

 

2ロギングモジュール

2.1基本的な使用

まず、サードパーティ製のモジュールロギングをインストール

ピップのロギング

基本的な設定をログに記録した後、コンソールにログを出力

インポートログ   
のロギング。デバッグ(「デバッグメッセージ」)  
のロギング。情報(「情報メッセージ」)  
のロギング。警告(「警告メッセージ」)  
のロギング。エラー(「エラーメッセージ」)  
のロギング。重要(「重要なメッセージ」)  

警告:ルート:警告メッセージ
ERROR:ルート:エラーメッセージ
CRITICAL:ルート:重要なメッセージ

ロギングモジュールログを標準出力に出力可視デフォルトのPythonの場合、唯一のショーを示す以上の警告レベルのログ、そのデフォルトログレベル警告(ログレベルレベルCRITICAL> ERROR> WARNING> INFO> DEBUG> NOTSET)、

デフォルトのログ形式は次のとおりです。       ログレベル:ロガー名:ユーザー出力メッセージ

 

2.2柔軟な構成ログレベル、ログ形式、出力先

インポートロギング   


logging.basicConfig(レベル
= logging.DEBUG、 フォーマット = ' %(いるasctime)S%(ファイル名)S [行:%(LINENO)D]%(levelname)S%(メッセージ)' datefmt = ' % 、%D%B%Y%のH:%M:%のS ' ファイル名 = ' /tmp/test.log ' ファイルモード = ' W ' logging.debug(' デバッグメッセージ' logging.info(' インフォメッセージ" logging.warning(' 警告メッセージ' logging.error(' エラーメッセージ' logging.critical(' 重要なメッセージ'

 

あなたは、パラメータが用意されていデフォルトlogging.basicConfig内の特定のパラメータの動作()関数によって可視のロギングモジュールを変更することができます


 - ログを指定して保存されるので、(ハンドラの背景にある概念を詳細に説明します)指定されたファイル名でFiledHandlerの作成:ファイル名ファイル。  
- 
- たfileMode:ファイルを開く、このパラメータは、ファイル名で指定され、デフォルト値「」も「W」として指定することができます。  
- フォーマット:表示形式を使用してログ・ハンドラを指定します。  
- 
- datefmt:日付と時刻の形式を指定します。  
- レベル:ログレベルを設定します。 
                  

2.3ハンドラの使用

         ログハンドラは、あなたの決定、最終的位置を、あなたのログ情報を出力する端子(StreamHandlerの)に直接であるか、ログファイルに保存された(のFileHandler)

      典型的なログ記録ステップがあるようです。

  1. ロガーを作成します。
  2. ハンドラを作成します(StreamHandlerはとのFileHandler)
  3. 定義されたフォーマッタ
  4. ハンドラに追加するフォーマッタ
  5. ロガーハンドラに追加
インポートロギング
ロガー = logging.getLogger( 
logger.setLevel(レベル = logging.INFO) 

建立一个のFileHandler ハンドラ
= logging.FileHandler(" log.txtという"、コード= 'UTF8' handler.setLevel(logging.INFO) フォーマッタ = logging.Formatter(' %(いるasctime)S - %(名)S - %(levelname)S - %(メッセージ)S ' handler.setFormatter(フォーマッタ)#建立一个StreamHandlerは コンソール
= logging.StreamHandler() コンソール。でsetLevel(logging.INFO) logger.addHandler(ハンドラ) logger.addHandler(コンソール) logger.info(" スタート印刷ログ" logger.debug(" 実行(Do)何か" logger.warning(" 失敗多分何か。" logger.info(" 完了"

 

 

付録:ログは、パッケージをファイル

 パッケージログ
    DEF GET_LOG(セルフ):
        ロガー作成 
        ロガー= logging.getLogger()
        Logger.setLevel(logging.info) 

        ログ保存パス、ログファイル名を設定
        #を提供する形式に、ローカルタイムを取得 
        RQ =時間.strftime(' %D Y%M %%% HのM ' 、time.localtime(time.time()))
       パスログ記憶通路 
        all_log_path = ' ログ/ All_Logs / ' 
        error_log_path = ' ログ/ Error_Logs / ' #1 セットログファイル名 
        all_log_name all_log_path = RQ + + ' .logに'
        error_log_name = RQ + + error_log_path ' の.log ' 

        ハンドラの作成
        #は、すべての書き込みログハンドラを作成します。 
        FH = logging.FileHandler(all_log_name、エンコード= ' UTF8を' 
        fh.setLevel(logging.info) 
        書き込みエラーハンドラを作成します。ログ 
        EH = logging.FileHandler(error_log_name、コード= " UTF8 " 
        eh.setLevel(logging.error) 
        は、コンソールにハンドラを作成 
        CH = logging.StreamHandler()
        ch.setLevel(logging.info) 

        、ログ出力を定義しますフォーマット
        #の時間-ログフォームの内容を表示-ログ名-ログレベル
        = logging.Formatter all_log_formatter(' %(いるasctime)S - %(名)S - %(levelname)S - %(メッセージ)S ' #の時間-ログの名前-ログレベル-ファイル名-機能行番号-エラー内容 
        error_log_formatter = logging.Formatter(
             ' %(いるasctime)S - %(名)S - %(levelname)S - %(Module1の)S - %(LINENO)S - %(メッセージ)S ' #が良い定義します出力フォーマットハンドラに加え
        fh.setFormatter(all_log_formatter)
        ch.setFormatter(all_log_formatter)
        eh.setFormatter(error_log_formatter) 

        追加するロガーハンドラ
        logger.addHandler(FH)
        logger.addHandler(EH)
        logger.addHandler(CH)
        リターン・ロガー

 

おすすめ

転載: www.cnblogs.com/hn-daxiong/p/12543843.html