import logging
"""
日志触发时是多线程的,但是会保持日志输出的顺序
logging库的日志级别
级别 | 级别数值 | 使用时机
DEBUG | 10 | 详细信息,常用于调试
INFO | 20 | 程序正常运行过程中产生的一些信息
WARNING | 30 | 警告用户,虽然程序还在正常运行,但是可能发生错误
ERROR | 40 | 由于更严重的问题,程序已经不能执行一些功能了
CRITICAL | 50 | 严重错误,程序已不能继续运行
常用的是INFO
默认日志级别是WARNING,只有级别大于默认日志级别时才会有输出
eg:
logging.debug("This is a debug log.")
logging.info("This is a info log")
logging.warning("This is a info warning")
logging.error("This is a info error")
logging.critical("This is a info critical")
output:
WARNING:root:This is a info warning
ERROR:root:This is a info error
CRITICAL:root:This is a info critical
通过次函数修改默认日志级别:logging.basicConfig(level=logging.DEBUG)
--------------------------------------------------------------
""""""初阶应用"""
flag_1 =4if flag_1 ==1:# logging.basicConfig(level=logging.DEBUG) # 在软件上打印出来# filename:写入文件的名称;filemode:写入模式,和文件的读写一样;level:设置日志的默认级别
logging.basicConfig(filename='demo.log', filemode='w', level=logging.DEBUG)
logging.debug("This is a debug log.")
logging.info("This is a info log")
logging.warning("This is a info warning")
logging.error("This is a info error")
logging.critical("This is a info critical")elif flag_1 ==2:
logging.basicConfig(level=logging.DEBUG)
name ='Tom'
age =18
logging.debug('姓名:%s, 年龄:%d'%(name, age))elif flag_1 ==3:
logging.basicConfig(filename='demo.log', filemode='w',format="Time:%(asctime)s|logging level:%(levelname)s|filename:%(filename)s-line:%(lineno)s|message:%(message)s",
level=logging.DEBUG,
datefmt="%Y-%m-%d %H:%M:%S")
name ='张三'
age =25
logging.debug("name:%s, age:%d"%(name, age))
logging.warning("由于...出错,导致程序中断,请检查...")else:print("第一部分 初级阶段 不输出。")