はじめに簡単なロギングモジュールです
1 インポートロギング 2 #5は、ログレベルの種類、画面にデフォルト出力、警告レベルとデフォルト印刷ログ上記 3。 logging.debug(「テストデバッグ」) 4。 logging.info(「テスト情報」) 5。 logging.warning(" テスト警告「) 。6 logging.error(」テスト・エラー「) 。7 logging.critical(」テストクリティカル」) 。8 。9 #は、ログファイルに出力されていない場合には、ログ出力パラメータ、ログファイルのパス名の出力を設定。ログ・ファイル・レベルにレベル出力、フォーマットと時間フォーマットのログ情報である、ログのdatefmtタイムスタンプ形式 10 #注:logging.basicConfigをログに記録する前にログを印刷することはできませんそれ以外logging.basicConfigは、画面にファイル、または意志出力に出力を記録していない 11 logging.basicConfig(ファイル名= 「Test3は」、 12 レベル= logging.info、 13 =フォーマット' %(いるasctime)S%(levelname)S%(メッセージ)S ' 、 14 datefmt = " %のM /%D /%I Yの%:%のM:%のS " ) 15 logging.warning(" テスト警告")
各プロパティの値に要約ログフォーマットを意味
ロガー名%(名)S
%(levelno)のデジタル形式のログレベル
%(levelname)はテキスト形式のログレベルによ
%機能モジュールの完全なパス(パス名)のコールログ
%(ファイル名)のコールログ出力モジュールファイル名
%(モジュール)のコールログ出力機能モジュール名
関数%の名前(FUNCNAME)Sコールログ出力
%(LINENO)出力関数呼び出し文の行ログdは
UNIXタイムスタンプフォーマット規格F%(作成)を時間
のミリ%(relativeCreated)Dロガー開始
%(いるasctime)の現在の時刻フォーマット文字列
%(スレッド)のスレッド上述のID
(のthreadName)Sスレッド名%
%(処理)上記のID上記方法dは
%(メッセージ)のログメッセージ
異なるにログ出力ファイル
1 インポートロギング 2 「」 " 。3 Pythonは4つの主要なクラスに応じて、ロギングモジュールを使用 4。 ロガーを直接使用するアプリケーションのためのインタフェースを提供する 5。 ハンドラは、適切な宛先にログ出力を送信する 6。 、フィルタは、フィルタリング提供するログ出力を決定 7 フォーマッタ最終決定形式のログ出力を 8 「」「 9つの #は、ロガーを作成し、デバッグするログレベルを設定 10 logger1 = logging.getLogger(」logger_name 」) 。11 logger1.setLevel(logging.DEBUG) 12は、 13である #画面を作成します出力ハンドラは、情報へのロギングレベル設定 14 SH = logging.StreamHandler() 15 sh.setLevel(logging.info) 16 17の #はファイル出力ハンドラを作成し、警告としてログセクタを設定し、出力ログファイルはfile_logある 18 FH = logging.FileHandler(「file_log.log 」) 19 fh.setLevel(logging.WARNING) 20 21 #ログ形式を設定し、 、ここで同じフォーマットlogging.basicConfigパラメータが意味、logging.getLogger対応name引数 22は formatter1 logging.Formatter =(' %(いるasctime)S%(levelname)S%(名)(メッセージ)S%' ) 23であり、 24 位ハンドラ・ログ・フォーマットに追加する、異なる形式が異なるHDに関連していてもよい 25 sh.setFormatter(formatter1) 26である fh.setFormatter(formatter1) 27 28 #関連しロガーHDのみに関連付けることができる 29 logger1.addHandler(SH) 30 logger1.addHandler(FH)は 31であり、 32 logger1.error(" テスト・エラー" ) 33が logger1.info(" テスト情報" ) 34である "" " 35 画面出力 36 2019年12月11日夜9時54分:10961テストエラーエラーlogger1 37 [ 2019年12月11日21である:54である:10961 logger1 info情報テスト 38は、 文書出力 39 2019年12月11日21である54ことである:10961エラーエラーlogger1テスト 40 「」 "
ログのセグメンテーション
1つの #ログの自動切断は、別のハンドラをインポートする必要がある 2 からロギングインポートハンドラを 3 logger2 = logging.getLogger(__name__)#のこの着信プログラムの名前 4 #-create指定したファイルハンドラと切断、各ファイルが3記憶されていますバイト・ログは、最新の3つのファイルと設定し、ファイルレベルを維持する 。5 FH1 handlers.RotatingFileHandler =(ファイル名= 「split_byte.log 」、MAXBYTES = 2、= BACKUPCOUNT。3 ) 。6 位ハンドラと標準切削時間に指定されたファイルを作成します、5秒ごとに一度カットは、3個のファイルまで保持されます。S S H H M週W分D日(月曜日間隔== 0)毎朝ミッドナイト 。7 FH2 handlers.TimedRotatingFileHandler =(ファイル名= " split_time "、場合=" S "、間隔= 5、backupCount = 3 ) 8 fh1.setLevel(logging.INFO) 9 fh1.setFormatter(formatter1) 10 logger2.addHandler(FH1) 11 logger2.warning(「これはワーリング・ログ、分割ログ試験でありますxxxxxxxdddddddddddddddddddddddddddddddddddd 「) 12 logger2.warning(」これはワーリング・ログで、分割ログテストXXXXXXX ")