log技术_logging_basicConfig()函数_在日志文件中记录异常
一、参数说明
1、logging.basicConfig()函数各参数说明
1、filename:指定日志文件名;
2、filemode:和file函数意义相同,指定日志文件的打开模式,'w'或者'a';
3、format:指定输出的格式和内容,format可以输出很多有用的信息;
4、level:日志级别
2、format 参数说明
参数 作用
%(levelno)s 打印日志级别的数值
%(levelname)s 打印日志级别的名称
%(pathname)s 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s 打印当前执行程序名
%(funcName)s 打印日志的当前函数
%(lineno)d 打印日志的当前行号
%(asctime)s 打印日志的时间
%(thread)d 打印线程ID
%(threadName)s 打印线程名称
%(process)d 打印进程ID
3、日志级别
log.debug('调试')
log.info('信息')
log.warning('警告')
log.error('错误')
log.critical('糟糕')
4、日志设置
1、存放路径
2、日志文件名
3、内容格式:format
2020_10_14.21.34.24 - logBasic.py [代码错误的行号] 级别:具体内容执行时间 文件名 【报错行号】 等级 msg(具体信息)
2、Python 代码 把日志写到文件里(封装log方法)
import logging # logging默认打印warning以上级别的信息
from datetime import datetime
import time
import traceback # 将原始报错的信息返回出来
def logger():
logging.basicConfig(format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s',
filename=f'./{datetime.now().strftime("%Y-%m-%d-%H.%M.%S")}.txt',
level=logging.INFO,
filemode='a+')
return logging
if __name__ == '__main__':
log = logger()
log.error('---hello---')
try:
input = int(input('请输入一个整数:'))
print(1/input)
except: # 捕获所有的异常
# 返回时间和原始报错信息
log.error(time.strftime('%y-%m-%d %H:%M:%S')+traceback.format_exc() + '-------------- \n')
# 生成的日志文件内容如下:
# 2022-07-02 12:52:49,361 - log����_logging_basicConfig������������˵��.py[line:60] - ERROR: ---hello---
# 2022-07-02 12:52:53,042 - log����_logging_basicConfig������������˵��.py[line:67] - ERROR: 22-07-02 12:52:53Traceback (most recent call last):
# File "F:/4-Project/Project_�����/�ܽ�_Python֪ʶ��/03_log����_�쳣��־/log����_logging_basicConfig������������˵��.py", line 63, in <module>
# input = int(input('������һ��������'))
# ValueError: invalid literal for int() with base 10: '1.1'
# --------------