zoukankan      html  css  js  c++  java
  • Python--logging日志模块

    用于便捷记录日志且线程安全的模块

    单文件日志

    basicConfig()模块函数

    功能:创建日志文件和写日志模式【有参】

    使用方法:模块名称.basicConfig(filename="日志文件名称",format="(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容)",datefmt="日期时间格式",level="日志等级")

    格式如:logging.basicConfig(filename='log.log',format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',level=logging.WARNING)

    内置等级写入函数【有参写入的内容】

    critical()模块函数,critical等级写入日志
    fatal()模块函数,fatal等级写入日志
    error()模块函数,error等级写入日志
    warning()模块函数,warning等级写入日志
    warn()模块函数,warn等级写入日志
    info()模块函数,info等级写入日志
    debug()模块函数,debug等级写入日志

    等级对照表
    CRITICAL = 50
    FATAL = CRITICAL
    ERROR = 40
    WARNING = 30
    WARN = WARNING
    INFO = 20
    DEBUG = 10

    复制代码
    #!/usr/bin/env python
    # -*- coding:utf8 -*-
    import logging
    logging.basicConfig(filename='log.log',
                        format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',#(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容)
                        datefmt='%Y-%m-%d %H:%M:%S %p',#日期时间格式
                        level=logging.WARNING)#日志等级,日志等级要求大写
    # 等级对照表
    # CRITICAL = 50
    # FATAL = CRITICAL
    # ERROR = 40
    # WARNING = 30
    # WARN = WARNING
    # INFO = 20
    # DEBUG = 10
    
    #注意:写入等级大于日志等级,才写入日志数据
    
    # 写入等级,写入日志
    logging.critical('sss')#写入日志,写入等级要求小写
    logging.fatal("333")#写入日志,写入等级要求小写
    logging.error("2222")#写入日志,写入等级要求小写
    logging.warning("5555")#写入日志,写入等级要求小写
    logging.warn("999")#写入日志,写入等级要求小写
    logging.info("598")#写入日志,写入等级要求小写
    logging.debug("5646")#写入日志,写入等级要求小写
    
    #log日志写入数据
    # 2016-09-06 15:10:38 PM - root - CRITICAL -index:  sss
    # 2016-09-06 15:10:38 PM - root - CRITICAL -index:  333
    # 2016-09-06 15:10:38 PM - root - ERROR -index:  2222
    # 2016-09-06 15:10:38 PM - root - WARNING -index:  5555
    # 2016-09-06 15:10:38 PM - root - WARNING -index:  999
    
    #以上可以看出,写入等级大于日志等级,才写入日志数据
    复制代码

    log()模块函数

    功能:自定义写入等级,写入日志【有参】

    使用方法:模块名称.log(写入等级数,"写入内容")

    格式如:logging.log(40,'log')

    复制代码
    #!/usr/bin/env python
    # -*- coding:utf8 -*-
    import logging
    logging.basicConfig(filename='log.log',
                        format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',#(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容)
                        datefmt='%Y-%m-%d %H:%M:%S %p',#日期时间格式
                        level=logging.WARNING)#日志等级,日志等级要求大写
    # 等级对照表
    # CRITICAL = 50
    # FATAL = CRITICAL
    # ERROR = 40
    # WARNING = 30
    # WARN = WARNING
    # INFO = 20
    # DEBUG = 10
    
    #注意:写入等级大于日志等级,才写入日志数据
    
    # 自定义写入等级,写入日志
    logging.log(40,'log')
    复制代码

    多文件日志(推荐)

    FileHandler()模块函数

    功能:打开或创建日志文件【有参】

    使用方法:模块名称.FileHandler("文件路径名称","打开模式",encoding='字符编码')

    格式如:logging.FileHandler('l1_1.log', 'a', encoding='utf-8')

    Formatter()模块函数

    功能:创建日志写入格式【有参】

    使用方法:模块名称.Formatter(fmt="%(日期和时间)s - %(日志等级名称)s - %(写入等级名称)s -%(产生日志程序名称)s:  %(日志内容)s")

    格式如:logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")

    setFormatter()模块函数

    功能:将日志写入格式应用到,打开文件【有参】

    使用方法:打开日志文件变量.setFormatter(创建日志写入格式变量)

    格式如:file_1_1.setFormatter(fmt)

    Logger()模块函数

    功能:创建日志等级,注意这个日志等级可以参照等级对照表来设置,要求大写【有参】

    使用方法:模块名称.Logger("自定义日志等级名称",level=日志等级参数)

    格式如:logging.Logger('s1', level=logging.ERROR)

    addHandler()模块函数

    功能:将日志等级追加到打开的文件【有参】

    使用方法:创建日志等级变量.addHandler(打开日志文件变量)

    格式如:logger1.addHandler(file_1_1)

    close()模块函数

    功能:关闭打开的日志文件【无参】

    使用方法:打开日志文件变量.close()

    格式如:file_1_1.close()

    复制代码
    #!/usr/bin/env python
    # -*- coding:utf8 -*-
    import logging #导入模块
    # 定义文件1
    file_1_1 = logging.FileHandler('l1_1.log', 'a', encoding='utf-8')#以a模式打开或创建日志文件
    fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")#创建日志写入格式
    file_1_1.setFormatter(fmt)#将日志写入格式应用到,打开文件
    # 定义文件2
    file_1_2 = logging.FileHandler('l1_2.log', 'a', encoding='utf-8')#以a模式打开或创建日志文件
    fmt = logging.Formatter(fmt="%(message)s")#创建日志写入格式
    file_1_2.setFormatter(fmt)#将日志写入格式应用到,打开文件
    
    # 定义日志
    logger1 = logging.Logger('s1', level=logging.ERROR)#创建日志等级,注意这个日志等级可以参照等级对照表来设置,要求大写
    logger1.addHandler(file_1_1)#将日志等级追加到打开的文件
    logger1.addHandler(file_1_2)#将日志等级追加到打开的文件
    
    # 写日志
    logger1.critical('1111') #写入等级函数写入日志,注意这个写入等级函数参照等级对照表来设置,要求小写,也可以用log()模块函数来自定义等级,参照log()模块函数
    
    file_1_1.close()#关闭打开的日志文件
    file_1_2.close()#关闭打开的日志文件
    #这样就将一个日志数据同时写入两个日志文件,注意:要将日志数据写入几个日志文件,就按照上面操作打开几个日志文件
    复制代码
  • 相关阅读:
    api自动化工具集成metersphere
    gitlab+github使用记录
    docker基本操作
    linux指标分析
    python的break和continue
    linux基本性能指标语法
    jmeter标准流程设置
    postman
    jmeter本地启动
    对浮动的一些个人理解
  • 原文地址:https://www.cnblogs.com/zjltt/p/6958186.html
Copyright © 2011-2022 走看看