log

logging级别

DEBUG : 详细信息,一般用于调试
INFO : 程序正常运行中产生的一些信息
WARNING : 警告用户,虽然程序还在正常工作,但有可能发生错误
ERROR : 由于更严重的问题,程序已经不能执行一些功能了
CRITICAL: 程序发生严重错误,不能正常运行

默认的级别是WARNING,只有在这个级别之上的才会被记录
demo:

import logging

logging.debug('debug的信息')
logging.info('info的信息')
logging.warning('warning的信息')
logging.error('error的信息')
logging.critical('critical的信息')

运行结果如下:

WARNING:root:warning的信息
ERROR:root:error的信息
CRITICAL:root:critical的信息

自定义级别,输出到文件

logging.basicConfig()

自定义级别  level=logging.DEBUG  (DEBUG级别以上的记录)
保存到文件	filename=文件路径    #每次执行都会在文件的末尾追加
每次保存到文件后重新记录	filemode='w' 

demo:记录info级别以上的日志,保存在log.txt文件中

import logging
import logging
logging.basicConfig(filename='log.txt',level=logging.INFO)

logging.debug('debug的信息')
logging.info('info的信息')
logging.warning('warning的信息')
logging.error('error的信息')
logging.critical('critical的信息')

运行后在当前目录新建一个log.txt文件,然后记录INFO级别以上的日志,如果多次运行,每次都是在该文件的末尾追加日志内容
如果需要在每次运行的时候清空文件内容,basicConfig()参数增加一个 filemode='w'

3.格式化输出
format()

demo: 不想要默认输出的中间那个root用户字段

import logging
logging.basicConfig(format='%(levelname)s:%(message)s',level=logging.INFO)
logging.debug('debug的信息')
logging.info('info的信息')
logging.warning('warning的信息')
logging.error('error的信息')
logging.critical('critical的信息')

输出:

INFO:info的信息
WARNING:warning的信息
ERROR:error的信息

对于%(levelname)s这种东西,是logging模块内置的,可以被输出到日志中的对象(末尾会有更多的相关内容)

记录日志时间

logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s',level=logging.INFO)
修改上述basicConfig如上
输出:

2020-12-09 16:38:44,285:INFO:info的信息
2020-12-09 16:38:44,288:WARNING:warning的信息
2020-12-09 16:38:44,290:ERROR:error的信息
2020-12-09 16:38:44,292:CRITICAL:critical的信息

格式化日期的输出格式 同 time.strftime() 这里在basicConfig中添加datefmt参数
demo:
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s',level=logging.INFO,datefmt='%Y-%m-%D %H:%M:%S')
修改上述basicConfig如上
输出:

2020-12-12/09/20 16:42:55:INFO:info的信息
2020-12-12/09/20 16:42:55:WARNING:warning的信息
2020-12-12/09/20 16:42:55:ERROR:error的信息
2020-12-12/09/20 16:42:55:CRITICAL:critical的信息

关于更多的可以被输出到日志中的对象

属性 格式 描述
asctime %(asctime)s 日志产生的时间,默认格式为2003-07-08 16:49:45,896
created %(created)f time.time()生成的日志创建时间戳
filename %(filename)s 生成日志的文件名字 路径
funcName %(funcName)s 调用日志的函数名
levelname %(levelname)s 日志级别 ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL')
levelno %(levelno)s 日志级别对应的数值
lineno %(lineno)d 日志所针对的代码行号(如果可用的话)
module %(module)s 生成日志的模块名
msecs %(msecs)d 日志生成时间的毫秒部分
message %(message)s 具体的日志信息
name %(name)s 日志调用者
pathname %(pathname)s 生成日志的文件的完整路径
process %(process)d 生成日志的进程ID(如果可用)
processName %(processName)s 进程名(如果可用)
thread %(thread)d 生成日志的线程ID(如果可用)
threadName %(threadName)s 线程名(如果可用)
posted @ 2020-12-09 17:09  Alantammm  阅读(195)  评论(0编辑  收藏  举报