Pythonのビルトインモジュール--loggingモジュール入門
1、ログ - ログ
(1)対数関数:
記録<1>ユーザ情報
<2>は、個人の水を記録します
動作状態<3>録音ソフト
プログラマから発行された<4>記録指示
<5>デバッグコード用プログラマ
(2)機能、簡単な構成ログ:
logging.debug()#デバッグデバッグ10
logging.info()#情報情報20
logging.warning()#警告警告30
logging.error()#エラーエラー40
logging.critical()#重要危险50
(3)情報をログに記録します
Pythonのロギングモジュールは、標準出力にデフォルトの印刷を記録し、警告のみにそのデフォルトを表す以上の警告レベルのログ、ログレベルを示します
、(レベルグレードCRITICAL> ERROR> WARNING> INFO> DEBUGのログ)
ログレベルのデフォルトのログフォーマット:ロガー名:ユーザー出力メッセージ。
記録されたデフォルトの警告の先頭から
logging.basicConfig(レベル= 30)#デフォルトの開始レベル30を調整
(4)マニュアルトランスミッション
import logging
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filename="test.log",
filemode="a",
)
logging.debug("你是疯儿,我是傻") # debug 调试
logging.info("疯疯癫癫去我家") # info 信息
logging.warning("缠缠绵绵到天涯") # info 警告
logging.error("我下不床") # error 错误
logging.critical("你回不了家") # critical 危险
<1>にbasicConfig()関数が用意されてロギングモジュール特有のパラメータのデフォルト動作パラメータによって変更することができます。
- ファイル名:FiledHandlerを作成するには、そのようなログは、指定されたファイル名で指定したファイルに格納されています。
- ファイルモード:このパラメータは、ファイル名で指定され、デフォルト値「」も「W」として指定することができる、オープンファイル。
- 形式:ハンドラ指定した表示形式を記録します。
- datefmt:日付と時刻の形式を指定します。
- 設定するログレベル:レベル
- ストリーム:指定されたストリームをStreamHandlerの作成。あなたはへの出力を指定することができます
- sys.stderrを持ち、sys.stdoutのか、ファイル(F =オープン( 'test.log'、) 'W')、デフォルトのsys.stderrを持ち。両方のファイル名とストリームの2つのパラメータを一覧表示した場合は、ストリームのパラメータは無視されます。
<2>の形式のパラメータ文字列形式を使用することができます。
- %(名)■ロガー名
- %(Levelno)のログレベルデジタル形式
- %(Levelname)のログレベルのテキスト形式
- ログ出力機能モジュールのフルパス名に%(パス名)の呼び出しがないかもしれません
- %(ファイル名)のコールログ出力機能モジュールのファイル名
- %(モジュール)のコールログ出力機能モジュール名
- 関数名%(FUNCNAME)のコールログ出力機能
- OKコードステートメントの%(LINENO)Dログ出力関数の呼び出し場所
- 標準的な浮動小数点表現UNIX時間で表される現在時刻のF%(作成)
- ミリ秒ロガーの数は、場合D出力ログ情報%(relativeCreated)作成されてから
- 現在時刻文字列sの%(いるasctime)。デフォルトの形式は「2003-07-0816:49:45896」です。カンマの後のミリ秒
- %(スレッド)DスレッドID。ではないかもしれません
- %(のthreadName)■スレッド名。ではないかもしれません
- %(プロセス)DプロセスID。ではないかもしれません
- メッセージ%(メッセージ)のユーザ出力
(5)自動
import logging
# 初始化一个空日志
logger = logging.getLogger() # -- 创建了一个对象
# 创建一个文件,用于记录日志信息
fh = logging.FileHandler('test.log',encoding='utf-8')
# 创建一个文件,用于记录日志信息
fh1 = logging.FileHandler('test1.log',encoding='utf-8')
# 创建一个可以在屏幕输出的东西
ch = logging.StreamHandler()
# 对要记录的信息定义格式
msg = logging.Formatter('%(asctime)s - [line:%(lineno)d] - %(filename)s - %(levelname)s - %(message)s')
# 对要记录的信息定义格式
msg1 = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
# 设置记录等级
logger.setLevel(10) or logger.setLevel(logging.DEBUG)
# 等级对应表
'''
DEBUG - 10
INFO - 20
WARNING - 30
ERROR - 40
CRITICAL - 50
'''
# 将咱们设置好的格式绑定到文件上
fh.setFormatter(msg)
fh1.setFormatter(msg)
# 将咱们设置好的格式绑定到屏幕上
ch.setFormatter(msg1)
# 将设置存储日志信息的文件绑定到logger日志上
logger.addHandler(fh) #logger对象可以添加多个fh和ch对象
logger.addHandler(fh1)
logger.addHandler(ch)
# 记录日志
logger.debug([1,2,3,4,])
logger.info('logger info message')
logger.warning('logger warning message')
logger.error('logger error message')
logger.critical('logger critical message')