[のpython3] 042ログ

ログ

  • ロギングモジュールは、モジュールレベルの機能をログに記録します
  • これは、4つのコンポーネントが含まれて

1.ログの概念

1.1ログレベルレベル

  1. デバッグ
  2. INFO
  3. 通知
  4. 警告
  5. エラー
  6. CRITICAL
  7. ALERT
  8. 緊急
  • ユーザーは注意が必要な情報をプログラムすることができます

の1.2 LOGの役割

  • デバッギング
  • ソフトウェアの動作を理解します
  • オリエンテーションの分析

1.3ログ

  • 時間
  • レベル
  • 場所
  • コンテンツ

1.4サードパーティのログを成熟

  • ロギング
  • Log4jの
  • log4php

1.5注意

  • 頻繁にIOを操作しないでください

2.ロギングモジュール

2.1ログレベル

  • デバッグ
  • INFO
  • 警告
  • エラー
  • CRITICAL

2.2使用

  1. パッケージの他のコンポーネントので、ロギング、ログの直接使用

  2. 四つの直接カスタムコンポーネントlogingと

2.3ノート

  • 初期化するか、書き込みログインスタンスは、レベルを指定する必要があります
  • レベルをカスタマイズすることができます
  • レベルが規定レベル以上である場合にのみだけを記録しました

2.4ログモジュールレベルのログ

いくつかの機能の2.4.1ログ

機能 定義
logging.debug(MSG、* argsを、** kwargsから) 重大度レベルの作成デバッグログを
logging.info(MSG、* argsを、** kwargsから) 重大度レベルを作成INFOのロギングを
logging.warning(MSG、* argsを、** kwargsから) 重大度レベルの作成警告ログを
logging.error(MSG、* argsを、** kwargsから) 重大度レベルの作成エラーログを
logging.critical(MSG、* argsを、** kwargsから) 重大度レベルを作成CRITICALのログを
logging.log(レベル、* argsを、** kwargsから) 以下のための重大度レベルを作成してレベルのロギング
logging.basicConfig(** kwargsから) ルートロガーワンタイム設定
  • logging.basicConfig(** kwargsから)
    • 最初の呼び出しは、行動する場合にのみ、
    • デフォルト値ロガーを設定しないでください
      • 出力:sys.stderrを持ち
      • レベル:警告
      • フォーマット:レベル:LOG_NAME:コンテンツ

2.4例2

  • フォーマットパラメータ
パラメータ 使い方 定義
関数は、asctime %(いるasctime)■ イベントのタイムログ-人間が読める時間
など:2019-12-2417:00:12765
作成した %(作成)F イベントのタイムログ-タイムスタンプ
と関数によって返さ呼び出すtime.time値()と同じ
relativeCreated %(relativeCreated)D ログイベント時間
モジュールのロード時間をログに記録ミリ秒単位の相対数
ミリ秒 %(ミリ秒)D イベントのログイベントミリ秒のセクション
levelname %(levelname)■ ログレコードのログレベルのテキスト形式
「DEBUG」、「INFO」、 「警告」、「ERROR」、「CRITICAL」
levelno %(levelno)■ ログレコードのログレベル(10、20、30、40、50)のデジタル形式
名前 %(名)■ ログイン名が使用、デフォルトでは「ルート」である
デフォルトのrootLoggerとして
メッセージ %(メッセージ)の MSG%の引数によって得られたテキスト・ロギング、計算
パス名 %(パス名)の ソースファイルへのフルパスは、ロギング機能と呼ばれています
ファイル名 %(ファイル名)の ファイル拡張子を含むファイル名のパス名、
モジュール %(モジュール)の 名前のファイル名の一部、サフィックスが含まれていません
LINENO %(LINENO)D ソースコードの存在のコールログ機能に行番号
FUNCNAME %(FUNCNAME)■ コールロギング機能名機能
処理する %(プロセス)D プロセスID
ProcessNameの %(ProcessNameの)の プロセス名、Pythonの3.1新しいです
%(スレッド)からd スレッドID
threadName %(スレッド)の スレッド名

2.5ロギングプロセス・フロー・モジュール

  • 四つの成分
パッケージ 効果
ロガーロガー インターフェイスのログを生成します
プロセッサハンドラ 対応する送信先に生成されたログを送信します。
フィルターのフィルター これらのより細かい制御ログ出力
フォーマッタフォーマッタ 出力情報のフォーマット

2.5.1ロガー

  • ログを生成
機能 定義
Logger.setLevel() 重要度の設定ロガーの最小レベルは、ログメッセージを処理されます
Logger.removeHandler和Logger.addHandler()() ロガーは、ハンドラオブジェクトを追加および削除するオブジェクト
Logger.addFilter()和Logger.removeFilter() ロガーは、フィルタオブジェクトを追加および削除するためのオブジェクト
Logger.debug 产生一条 debug 级别的日志
info, error 等同理
Logger.exception() 创建类似于 Logger.error 的日志消息
Logger.log() 获取一个明确的日志 level 参数类创建一个日志记录
  • 如何得到一个 logger 对象
  1. 实例化
  2. logging.getLogger()

2.5.2 Handler

  • 把 log 发送到制定位置
  • 方法
    • setLevel
    • setFormat
    • addFilter, removeFilter
  • 不需要直接使用,Handler 是基类
方法 释义
logging.StreamHandler 将日志消息发送到输出到 Stream
如 std.out, std.err 或任何 file-like 对象
logging.FileHandler 将日志消息发送到磁盘文件
默认情况下文件大小会无限增长
logging.handlers.RotatingFileHandler 将日志消息发送到磁盘文件,并支持日志文件按大小切割
logging.hanlders.TimedRotatingFileHandler 将日志消息发送到磁盘文件,并支持日志文件按时间切割
logging.handlers.HTTPHandler 将日志消息以 GET 或 POST 的方式发送给一个 HTTP 服务器
logging.handlers.SMTPHandler 将日志消息发送给一个指定的 email 地址
logging.NullHandler 该 Handler 实例会忽略 error messages
通常被想使用 logging 的 library 开发者使用来避免
'No handlers could be found for logger XXX' 信息的出现

2.5.3 Filter 类

  • 可以被 Handler 和 Logger 使用
  • 控制传递过来的信息的具体内容

2.5.4 Format 类

  • 直接实例化
  • 可以继承 Format 添加特殊内容
  • 三个参数
参数 释义
fmt 指定消息格式化字符串,如果不指定该参数则默认使用 message 的原始值
datefmt 指定日期格式字符串,如果不指定该参数则默认使用 "%Y-%m-%d %H:%M:%S"
style Python 3.2 时新增的参数,可取值为 '%', '{' 和 '$',如果不指定该参数则默认使用 '%'

おすすめ

転載: www.cnblogs.com/yorkyu/p/12093785.html