zoukankan      html  css  js  c++  java
  • logging 模块

    一、logging模块级别及常用函数

      默认的level是logging.Warning,低于该级别的就不输出了。级别排序:Critical> Error > Warning > Info > Debug

      Logging.Formatter:配置日志的格式,在里面自定义设置日期和时间,输出日志的时候将会按照设置的格式显示内容。

      Logging.Logger:为程序提供记录日志的接口;判断日志所处级别,并判断是否要过滤;根据其日志级别将该条日志分发给不同handler
      addHandler():添加一个Handler

      removeHandler():删除一个Handler
      addFilter():添加一个Filter,过滤作用

      setLevel():设置级别

      setFormatter():设置Formatter
      Logging.Handler:Handler基于日志级别对日志进行分发,如设置为WARNING级别的Handler只会处理WARNING及以上级别的日志。

      logging.basicConfig: 配置日志级别和日志内容输出格式

      help(logging.Formatter):

        %(name)s                   Logger的名字
        %(levelno)s                打印日志级别的数值
        %(levelname)s           打印日志级别的名称
        %(pathname)s            打印当前执行程序路径,相当于sys.argv[0]
        %(filename)s              打印当前执行程序名
        %(module)s                调用日志输出函数的模块名
        %(lineno)d                  打印日志的当前行号
        %(funcName)s           打印日志的当前函数
         %(created)f                当前时间,用UNIX标准的表示时间的浮点数表示
        %(asctime)s                打印日志创建时间
         %(msecs)d                  Millisecond portion of the creation time
        %(relativeCreated)d    输出日志信息时的,自Logger创建以来的毫秒数
        %(thread)d                  打印线程ID
         %(threadName)s        打印线程名称
        %(process)d                打印日志进程ID
         %(message)s              打印日志信息

    二、日志输出

     1 import logging
     2 import os.path
     3 import time
     4 
     5 
     6 logger = logging.getLogger()   # 创建一个logger
     7 logger.setLevel(logging.INFO)  # Log等级总开关
     8 
     9 # 创建一个handler,用于输出日志到console,若只需输出到文件,此两行代码去掉
    10 ch = logging.StreamHandler()
    11 ch.setLevel(logging.WARNING)  # 输出到console的log等级的开关
    12 
    13 # 创建一个handler,用于写入日志文件,若只需输出到console,此六行代码去掉
    14 rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
    15 log_path = os.path.dirname(__file__) + '/Logs/'
    16 log_name = log_path + rq + '.log'
    17 logfile = log_name
    18 fh = logging.FileHandler(logfile, mode='w')
    19 fh.setLevel(logging.DEBUG)  # 输出到file的log等级的开关
    20 
    21 # 定义handler的输出格式
    22 ch.setFormatter(logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s"))   # 若只需输出到文件,此行代码去掉
    23 fh.setFormatter(logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")) # 若只需输出到console,此行代码去掉
    24 25 # 将logger添加到handler里面 26 logger.addHandler(ch)  # 若只需输出到文件,此行代码去掉 27 logger.addHandler(fh) # 若只需输出到console,此行代码去掉 28 29 # 日志内容 30 logger.debug('Debug message') 31 logger.info('Info message') 32 logger.warning('Warning message') 33 logger.error('Error message') 34 logger.critical('Critical message')

     

  • 相关阅读:
    正则表达式
    浏览器 User-Agent 大全
    python3爬虫开发实战 第六课 爬虫基本流程
    python3爬虫开发实战 第五课 常用库的安装
    python3爬虫开发实战 第四课 MySQL
    python3爬虫开发实战 第三课 Redis数据库
    python3爬虫开发实战 第二课 MongoDB安装
    python3爬虫开发实战 第一课 python安装和Pycharm安装
    批处理——数据库
    Aop所需包
  • 原文地址:https://www.cnblogs.com/skyliao/p/9512145.html
Copyright © 2011-2022 走看看