• python模块之logging


    输出到console(默认打印warning级别以上(warnging、error、critical)的日志):

    import logging
    logging.debug('hello world') logging.warning('hello world') logging.error('hello world') #WARNING:root:hello world #ERROR:root:hello world

    输出到文件:

    import logging
    logging.basicConfig(filename='log_test.log',level=logging.INFO)
    logging.debug('helloworld')
    logging.info('helloworld')
    logging.warning('helloworld')
    #INFO:root:helloworld
    #WARNING:root:helloworld

    输出到文件,设定格式:

    import logging
    logging.basicConfig(filename='log_test.log',level=logging.INFO,format='%(asctime)s %(message)s',datefmt='%m-%d-%Y %I:%M:%S %p')
    logging.debug('helloworld')
    logging.info('helloworld')
    logging.warning('helloworld')
    
    #08-02-2020 05:56:53 AM helloworld
    #08-02-2020 05:56:53 AM helloworld

    输出到文件,所有格式:

    import logging
    logging.basicConfig(filename='log_test.log',level=logging.INFO,format='%(asctime)s %(message)s %(levelno)s %(levelname)s %(pathname)s %(filename)s %(module)s %(funcName)s %(lineno)d %(created)f %(relativeCreated)d %(asctime)s '
                                                                          '%(thread)d %(threadName)s %(process)d )',datefmt='%m-%d-%Y %I:%M:%S %p')
    
    logging.debug('helloworld')
    logging.info('helloworld')
    logging.warning('helloworld')
    def test_log():
        logging.warning('func test')
    test_log()
    #08-02-2020 06:20:59 AM helloworld 20 INFO E:/pythondir/Day01/testsdsd.py testsdsd.py testsdsd <module> 36 1596320459.622015 2 08-02-2020 06:20:59 AM 18572 MainThread 19432)
    #08-02-2020 06:20:59 AM helloworld 30 WARNING E:/pythondir/Day01/testsdsd.py testsdsd.py testsdsd <module> 37 1596320459.622015 2 08-02-2020 06:20:59 AM 18572 MainThread 19432)
    #08-02-2020 06:20:59 AM func test 30 WARNING E:/pythondir/Day01/testsdsd.py testsdsd.py testsdsd test_log 39 1596320459.622015 2 08-02-2020 06:20:59 AM 18572 MainThread 19432)

    格式说明:

     同时输出日志到console以及文本:

    import logging
    #1.生成logger对象
    logger = logging.getLogger('Mysql')
    #全局日志级别,(总过滤)
    logger.setLevel(logging.DEBUG)
    
    #2.生成handler对象
    ch = logging.StreamHandler()
    #局部日志级别,(次级过滤)
    ch.setLevel(logging.INFO)
    fh = logging.FileHandler(filename='log_test_logging')
    #局部日志级别,(次级过滤)
    fh.setLevel(logging.WARNING)
    
    #2.1把handler对象绑定到logger
    logger.addHandler(ch)
    logger.addHandler(fh)
    
    #3.生成format对象,并设定日志格式
    file_formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s ')
    console_formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(message)s ')
    
    #3.1把formatter对象绑定handler对象
    ch.setFormatter(console_formatter)
    fh.setFormatter(file_formatter)
    #日志输出
    logger.warning('warning test')
    logger.debug('debug test')

     对日志进行过滤以及切割:

    import logging
    from logging import handlers
    #创建过滤对象类
    class IgnoreBackupLogFilter(logging.Filter):
        def filter(self, record):
            return "you" not in record.getMessage()
    
    # 1.先生成logger
    logger = logging.getLogger('beifen')
    # logger.setLevel(logging.WARNING)
    logger.addFilter(IgnoreBackupLogFilter())
    # 2.生成handler对象
    ch = logging.StreamHandler()
    #普通文件对象
    # fh = logging.FileHandler(filename='beifen_test')
    #切割文件对象
    fh = handlers.RotatingFileHandler(filename='beifen_test',maxBytes=10,backupCount=3 )
    # 2.1把handler对象绑定到logger
    logger.addHandler(ch)
    logger.addHandler(fh)
    
    # 3.生成formatter
    ch_formatter = logging.Formatter('%(asctime)s %(message)s')
    fh_formatter = logging.Formatter('%(asctime)s %(message)s')
    # 3.1 把formatter绑定到handler
    ch.setFormatter(ch_formatter)
    fh.setFormatter(fh_formatter)
    
    # 输出
    logger.warning('hello you')
    logger.critical('hha')
  • 相关阅读:
    Sublime text 2 编辑器
    SWF文件版本支持映射表
    sql SET DATEFORMAT对日期处理的影响
    关于 getQualifiedDefinitionNames() 的使用场景
    prototypephotoarchive.cs
    jQuery easyui layout布局自适应浏览器大小
    iteratorfamilytree.cs
    内存利用率
    SET LANGUAGE对日期处理的影响示例
    mbox:Unix 的入门级邮箱
  • 原文地址:https://www.cnblogs.com/thanos-ryan/p/13417866.html
Copyright © 2020-2023  润新知