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')

     

  • 相关阅读:
    1024X768大图 (Wallpaper)
    (Mike Lynch)Application of linear weight neural networks to recognition of hand print characters
    瞬间模糊搜索1000万基本句型的语言算法
    单核与双核的竞争 INTEL P4 670对抗820
    FlashFTP工具的自动缓存服务器目录的功能
    LDAP over SSL (LDAPS) Certificate
    Restart the domain controller in Directory Services Restore Mode Remotely
    How do I install Active Directory on my Windows Server 2003 server?
    指针与指针变量(转)
    How to enable LDAP over SSL with a thirdparty certification authority
  • 原文地址:https://www.cnblogs.com/skyliao/p/9512145.html
Copyright © 2011-2022 走看看