zoukankan      html  css  js  c++  java
  • logging模块学习笔记:handler对象

    handler对象有以下几个,常用的为StreamHandler、FileHandler:

    StreamHandler

    FileHandler

    NullHandler

    WatchedFileHandler

    RotatingFilehandler

    TimedRotatingFilehandler

    SocketHandler

    DatagramHandler

    SysLoghandler

    Memoryhandler

    HTTPHandler

    Handler的三个基础操作:

    1、设置输出格式 

       设置输出格式要用到的对象是Formatter,初始化方法

       formater = logging.Formatter(格式)

       handler.setFormatter(formater)

       

     1 import logging
     2 import sys
     3 
     4 l_g = logging.getLogger()
     5 l_g.setLevel(logging.DEBUG)
     6 
     7 s_h = logging.StreamHandler(sys.stderr)
     8 f_h = logging.FileHandler('test.log') #设置文件对象,默认是以追加形式写入
     9 
    10 l_g.addHandler(s_h)
    11 l_g.addHandler(f_h)
    12 formatter = logging.Formatter('%(name)s - %(levelname)s - %(asctime)s - %(message)s') #设置formatter
    13 s_h.setFormatter(formatter)
    14 f_h.setFormatter(formatter)
    15 
    16 l_g.debug('debug msg')
    17 l_g.info('info msg')
    18 l_g.error('error msg')
    19 l_g.warn('warn msg')

    2、设置输出级别

       如上例,文件日志只记录error级别的,

       f_h.setLevel(logging.ERROR)

    3、设置过滤器

      

     1 import logging
     2 import sys
     3 
     4 l_g = logging.getLogger('a.b.c')
     5 l_g.setLevel(logging.DEBUG)
     6 
     7 s_h = logging.StreamHandler(sys.stderr)
     8 f_h = logging.FileHandler('test.log')
     9 
    10 l_g.addHandler(s_h)
    11 l_g.addHandler(f_h)
    12 formatter = logging.Formatter('%(name)s - %(levelname)s - %(asctime)s - %(message)s') #设置formatter
    13 s_h.setFormatter(formatter)
    14 f_h.setFormatter(formatter)
    15 f_h.setLevel(logging.ERROR)
    16 filter=logging.Filter('a.b') #设置过滤器
    17 s_h.addFilter(filter)
    18 l_g.debug('debug msg')
    19 l_g.info('info msg')
    20 l_g.error('error msg')
    21 l_g.warn('warn msg')

    s_h 这个流对象增加了一个过滤器,只有符合的才会输出,如果过滤器改为Filter('a.b.d'),则不会输出

  • 相关阅读:
    获取物料批次特性取值BAPI
    获取域的固定值的函数:DD_DOMVALU…
    CJ20N中对WBS元素执行删除操作时触…
    SM30相关操作
    CL03对应的BAPI(根据类查特性)
    两个数值交换
    char*,string,float,int 转换
    字符串 分割
    C++ 关于I/O
    TCP
  • 原文地址:https://www.cnblogs.com/bjdxy/p/2799525.html
Copyright © 2011-2022 走看看