zoukankan      html  css  js  c++  java
  • logging模块简单使用

    日志配置

    #!/usr/bin/python2.7
    
    import os
    import logging
     
    def get_logger(path='./', filename='access.log', level='debug'):
        log_level = {
            'debug':logging.DEBUG,
            'info':logging.INFO,
            'warning':logging.WARNING,
            'error':logging.ERROR,
            'critical':logging.CRITICAL
        }
        level = 'debug' if level not in log_level else level
    
        file = os.path.join(path,filename)
        formatter = logging.Formatter('"%(asctime)s" "%(filename)s[line:%(lineno)d]" "%(levelname)s" "%(message)s"')
        handler = logging.FileHandler(file, mode='a')
        # handler.setLevel(log_level[level])
        handler.setFormatter(formatter)
    
        logger = logging.getLogger(__name__)
        logger.setLevel(log_level[level])
        logger.addHandler(handler)
    
        return logger
    

    注意logger.setLevel 和 handler.setLevel 是不一样的。

    给日志每个字段加上双引号,方便后面结合awk进行统计分析

    awk -F " '{print $2}' analysis.log
    

    项目里的应用

    定义

    import logging
    
    logger = logging.getLogger("HorizonLog")  # 指定一个名称
    logger.setLevel(logging.DEBUG)
    formatter = logging.Formatter("%(asctime)s :: %(process)s :: %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
    handler = logging.FileHandler(settings.LOG_PATH + '/horizon.log')
    handler.setFormatter(formatter)
    logger.addHandler(handler)

    使用

    # Return a logger with the specified name or, 
    # if no name is specified, return a logger which is the root logger of the hierarchy.
    
    logger = logging.getLogger("HorizonLog")
    
    logger.info(...)
    logger.warning(...)
    logger.error(...)
  • 相关阅读:
    Android DisplayMetrics 获取和屏幕相关的信息
    【IOS开发—视图控制器】
    【IOS开发—视图】
    【Spdy协议简介】
    三维数组
    一维数组
    闰年判断
    使用switch case语句来显示月份的对应天数
    使用for循环嵌套实现乘法口诀表
    判断一个数的奇偶性
  • 原文地址:https://www.cnblogs.com/standby/p/9305825.html
Copyright © 2011-2022 走看看