Python学习 —— 日志模块(logging)

版权声明:转载注明出处 https://blog.csdn.net/qq_19428987/article/details/87644930

logging提供函数记录日志

  • 日志的级别(level):初始化/写日志实例需要指定级别
    -DEBUG
    -INFO
    -NOTICE
    -WARNING
    -ERROR
    -CRITICAL
    -ALERT
    -EMERGENCY

  • 日志信息

    -time
    -地点
    -level
    -内容

  • logging.basicConfig(filename=“LogSystem.log”,level=logging.DEBUG)
    设置日志的输出级别,默认warning,默认warning以下的不输出

    import logging
    logging.basicConfig(filename="LogSystem.log",level=logging.DEBUG)
    logging.error("Bug")
    
  • 自定义日志书写格式:

     LOG_FORMAT="%(asctime)s--%(levelname)s--%(message)s"
    logging.basicConfig(level=logging.DEBUG,format=LOG_FORMAT)
    

    logging模块定义的格式字符串字段

logging 模块的处理流程

  • 四大组件:
    -日志器(Logger):产生日志的接口
    -处理器(Handler):把产生的日志发送到相应的目的地
    -过滤器(Filter):跟精细的控制日志输出
    -格式器(Formatter):对输出信息格式化
import logging
from logging import handlers
# 设置日志格式
log_format = '%(asctime)s - %(levelname)s - %(pathname)s[line:%(lineno)d] - %(message)s'
# 设置时间格式
data_format = "%Y-%m-%d %H:%M:%S %p"
# 声明一个logger,设置日志等级为debug
logger = logging.getLogger('logger_1.log')
logger.setLevel(logging.DEBUG)
# 生成一个输出到屏幕的句柄,日志等级为INFO
sh = logging.StreamHandler()
sh.setFormatter(logging.Formatter(log_format))  # 设置输出到屏幕的格式
sh.setLevel(logging.INFO)
# 生成一个输出到文件的句柄,日志等级为ERROR
th = handlers.TimedRotatingFileHandler(filename='mylog.log', when='D', backupCount=2, encoding='utf-8')
th.setFormatter(logging.Formatter(log_format))  # 设置输出到文件的格式
th.setLevel(logging.ERROR)
# 将sh和th句柄添加到logger
logger.addHandler(sh)
logger.addHandler(th)
logger.error('error message')

logger还是比较强大的,实际应用中还需要具体的设计一下

猜你喜欢

转载自blog.csdn.net/qq_19428987/article/details/87644930