web自动化05-日志收集

1. 日志
概念:日志就是用于记录系统运行时的信息,对一个事件的记录;也称为Log。
1.1 日志的作用
- 调试程序
- 了解系统程序运行的情况,是否正常
- 系统程序运行故障分析与问题定位
- 用来做用户行为分析和数据统计
1.2 日志级别
思考:是否系统记录的所有日志信息的重要性都一样?
日志级别:是指日志信息的优先级、重要性或者严重程度
常见的日志级别
说明
  • 上面列表中的日志级别是从上到下依次升高的,即:DEBUG < INFO < WARNING < ERROR <CRITICAL;
  • 当为程序指定一个日志级别后,程序会记录所有日志级别大于或等于指定日志级别的日志信息,而不是仅仅记录指定级别的日志信息;
  • 一般建议只使用DEBUG、INFO、WARNING、ERROR这四个级别
 
日志的基本用法
 
 
  1. logging的基本用法?

    import logging
    logging.debug("xxx")
    logging.info("xxxx")
  2. 如何设置日志级别?

    logging.basicConfig(level=logging.INFO)
  3. 如何设置日志格式?

    logging.basicConfig(format="xxxxxxx")

如何将日志信息输出到文件中?

logging.basicConfig(filename="a.log")

 

日志的高级用法

  1. logging日志模块的四大组件?

    • 日志器

    • 处理器

    • 格式化器

    • 过滤器

  2. logging记录日志的实现步骤?

    1. 导包

      import logging.handlers

    2. 创建日志器

      logger = logging.getLogger()

    3. 创建处理器对象

      logging.StreamHandler
      logging.FileHandler
      logging.handlers.TimedRotatingFileHandler
    4. 创建格式化器对象

      formatter = logging.Formatter(fmt)
    5. 把格式化器添加到处理器中

      handlers.setFormatter(formatter)
    6. 把处理器添加到日志器中

      logger.addHandler(handler)
    7. 打印不同级别的日志

      logger.info("xxx")
      logging.error("xxx")
  3. 如何每日生成一个日志文件?

    fh = logging.handlers.TimedRotatingFileHandler(filename, when="H", interval=2, backupCount=3, encoding="UTF-8")

 

# 将日志信息同时输出到控制台和文件中

# 将日志信息同时输出到控制台和文件中
# 导包
import logging

# 创建日志器对象
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

# 创建控制台处理器
sh = logging.StreamHandler()
sh.setLevel(logging.INFO)

# 创建文件处理器
fh = logging.FileHandler("b.log", encoding="UTF-8")
fh.setLevel(logging.ERROR)

# 创建格式化器
fmt = '%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s'
formatter = logging.Formatter(fmt=fmt)

# 把格式化器添加到处理器中
sh.setFormatter(formatter)
fh.setFormatter(formatter)

# 把处理器添加到日志器
logger.addHandler(sh)
logger.addHandler(fh)

# 打印不同级别的日志
logger.info("info")
logging.warning("warn")
logger.error("error")

 

每日生成一个日志文件

# 每日生成一个日志文件

# 导包
import logging.handlers
import time
# 创建日志器对象
logger = logging.getLogger()
# 创建处理器对象
sh = logging.StreamHandler()
fh = logging.handlers.TimedRotatingFileHandler("c.log", when="M", interval=1, backupCount=3, encoding="UTF-8")
# 创建格式化器对象
fmt = '%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s'
formatter = logging.Formatter(fmt=fmt)
# 把格式化器添加到处理器中
sh.setFormatter(formatter)
fh.setFormatter(formatter)
# 把处理器添加到日志器中
logger.addHandler(sh)
logger.addHandler(fh)

# 打印日志
while True:
    logger.info("info")
    logger.error("error")
    time.sleep(1)

 




posted @ 2019-07-10 23:59  snailon  阅读(344)  评论(0)    收藏  举报