logging 是线程安全的
日志级别
日志级别是和错误信息相对应的,就是console里打印的信息,比如我们经常看到的error,waring等
级别 | 描述 |
---|---|
CRITICAL | 50 |
ERROR | 40 |
WARNING | 30,默认 |
INFO | 20 |
DEBUG | 10 |
NOTSET | 0 |
log文件配置
logging.basicConfig
参数 | 描述 |
---|---|
filename | 日志写入的文件 |
filemode | 默认为’a’,即追加模式 |
format | 为处理程序使用指定的格式字符串。 |
datefmt | 使用指定的日期/时间格式。 |
level | 对特定的级别进行配置,默认是对所有级别进行配置 |
handlers | ???? |
format
log文件配置中的format参数
例子:
注意在配置level的时候DEBUGE
是大写,而在调用的时候是小写logging.debuge
logging.basicConfig(level=logging.DEBUGE # 如果对所有级别进行配置,不要填level参数
format='asctime: %(asctime)s \n' # 时间
'filename_line: %(filename)s_[line:%(lineno)d] \n' # 文件名_行号
'level: %(levelname)s \n' # log级别
'message: %(message)s \n', # log信息
datefmt='%a, %d %b %Y %H:%M:%S',
filename='./log.log',
# stream=sys.stdout,
filemode='a') # 如果模式为'a',则为续写(不会抹掉之前的log)
try:
a=1/0
except Exception as e:
logging.debug("%s"%variable)//variable代指程序运行中的参数
logger类
logging.getLogger([name=None])
返回名称为name的Logger实例,如果使用相同的名字,则是同一个实例化对象,如果未指定name,则名称为root
loger.exception
可以快捷记录报错信息
logger = logging.getLogger(__name__)
try:
a=1/0
except Exception as e:
logger.exception("%s"%variable)//variable代指程序运行中的参数
参考文献:
https://www.cnblogs.com/yyds/p/6901864.html
https://www.cnblogs.com/i-honey/p/8052579.html