Pythonのロギングモジュールは、主に、操作ログを出力するために、標準モジュールを構築され、ログ出力レベルを設定することができるログ・パス保存、ロールバックログファイルのように、
2ロギングモジュール
2.1基本的な使用
まず、サードパーティ製のモジュールロギングをインストール
ピップのロギング
基本的な設定をログに記録した後、コンソールにログを出力
インポートログ
のロギング。デバッグ(「デバッグメッセージ」)
のロギング。情報(「情報メッセージ」)
のロギング。警告(「警告メッセージ」)
のロギング。エラー(「エラーメッセージ」)
のロギング。重要(「重要なメッセージ」)
警告:ルート:警告メッセージ
ERROR:ルート:エラーメッセージ
CRITICAL:ルート:重要なメッセージ
ロギングモジュールログを標準出力に出力可視デフォルトのPythonの場合、唯一のショーを示す以上の警告レベルのログ、そのデフォルトログレベル警告(ログレベルレベルCRITICAL> ERROR> WARNING> INFO> DEBUG> NOTSET)、
デフォルトのログ形式は次のとおりです。 ログレベル:ロガー名:ユーザー出力メッセージ。
インポートロギング
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)
典型的なログ記録ステップがあるようです。
- ロガーを作成します。
- ハンドラを作成します(StreamHandlerはとのFileHandler)
- 定義されたフォーマッタ
- ハンドラに追加するフォーマッタ
- ロガーハンドラに追加
インポートロギング ロガー = 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) リターン・ロガー