ディレクトリ
ログ
- ロギングモジュールは、モジュールレベルの機能をログに記録します
- これは、4つのコンポーネントが含まれて
1.ログの概念
1.1ログレベルレベル
- デバッグ
- INFO
- 通知
- 警告
- エラー
- CRITICAL
- ALERT
- 緊急
- ユーザーは注意が必要な情報をプログラムすることができます
の1.2 LOGの役割
- デバッギング
- ソフトウェアの動作を理解します
- オリエンテーションの分析
1.3ログ
- 時間
- レベル
- 場所
- コンテンツ
1.4サードパーティのログを成熟
- ロギング
- Log4jの
- log4php
1.5注意
- 頻繁にIOを操作しないでください
2.ロギングモジュール
2.1ログレベル
- デバッグ
- INFO
- 警告
- エラー
- CRITICAL
2.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 对象
- 实例化
- 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 时新增的参数,可取值为 '%', '{' 和 '$',如果不指定该参数则默认使用 '%' |