# %(asctime)s %(asctime)s %(message) s %(name)s %(pathname)s % (filename)s
# 日件发生时间 日志级别 日志文本内容 日志器名 调用日志记录函数记录文件全路径 —文件
#%(funcName) —函数名 s %(lineno)d —代码所在行号
# loggers 日志记录器(提供程序直接使用的接口) filetrs 日志过滤器(过滤特定日志记录)
# handlers 日志处理器(记录日志发送指定位置) formatters 日志格式器(用于控制日志信息输出格式)
format_date="%(asctime)s— %(asctime)s—% (filename)s "#输出格式化
logging.basicConfig(level=logging.DEBUG,format=format_data)#level 最低标准线的设定,注意大小写,输出格式化
#当只有一个对象的情况下,可以使用format="%(asctime)s-%(asctime)s-%(message)s"在方法内直接格式化
logging.error("报错太严重了啊")#控制台输出一条报错语句,附加format_data的输出格式内容
通过try expect语句捕捉一个异常并抛出,然后通过文件定义
import logging
logging.basicConfig(level=logging.ERROR)
logger=logging.getLogger("错误")#实例化一个日志对象
fn1=logging.FileHandler('tt.txt',encoding='utf-8')#文件名,编码
formatter=logging.Formatter( #格式化设置
fmt="%(asctime)s-%(asctime)s-%(message)s"
)
fn1.setFormatter(formatter)#输出到文件,格式参照formatter
logger.addHandler(fn1)
def fun(x):
y=5
z=y/x
try:
fun(x=0)
except ZeroDivisionError as b:
print(b)
logger.error(b)#输出错误