你一定会在某个时候用logger替代掉print
logging是为了记录程序动态过程,理解程序过程,降低调试难度
logging分为5个level, 控制台默认的logging level是warning,即只会输出warning级别以上的logging,低级别的不会显示/输出
logging.DEBUG是10,level都是int
logging.basicConfig(filename='test.log', level=logging.DEBUG,
format='%(asctime)s:%(levelname)s:%(message)s')
设置logging输出文件,默认级别,format设置logging输出格式
log文件默认不会覆盖,会一直继续记录
默认运行有一个rootlogger,level是warning
basicConfig只能调整rootlogger
如果创建了handler没有设置level就默认是0,即接收一切
一个logger可以有多个handler,logger有自己的level,消息传给logger,然后继续平行传给多个handler处理
handler有两种:filehandler(输出到文件)和streamhandler(输出到控制台)
handler由formatter和level构成