zoukankan      html  css  js  c++  java
  • 常见模块(二) logging模块

    logging模块是专门做日志系统的.分为函数版和自定义函数.

    (一)logging模块初级版

    缺点,不能指定字符集,不能把屏幕输出和文件日志同时记录。只能选择其一。

    文件记录日志

    import logging
    
    logging.basicConfig(
    	level = 30,
    	filename = "logger.log",
    	filemode = "a",
    	format = '%(asctime)s-%(name)s-%(lineno)d-%(message)s',
    
    )
    
    logging.warning("这是一个警告")
    logging.error("这是一个错误")
    logging.critical("这是一个严重错误")
    

      

    屏幕输出日志

    import logging
    
    logging.basicConfig(
    	level = 30,
    	#filename = "logger.log",
    	filemode = "a",
    	format = '%(asctime)s-%(name)s-%(lineno)d-%(message)s',
    
    )
    
    logging.warning("这是一个警告")
    logging.error("这是一个错误")
    logging.critical("这是一个严重错误")
    

      

    (二)logging模块中自定义日志系统

    import logging

    logger = logging.getLogger()  # 自定义一个模块系统
    Formatter = logging.Formatter('%(asctime)s-%(name)s-%(lineno)d-%(message)s')  # 定义日志输出格式
    ft = logging.FileHandler("logger.log", "a", encoding="utf-8")  # 定义文件流
    st = logging.StreamHandler()  # 定义屏幕流
    ft.setFormatter(Formatter)  # 将格式加载到文件流中
    st.setFormatter(Formatter)  # 将格式加载到屏幕流中
    logger.addHandler(ft)  # 将文件流加载到自定义的loger日志系统中
    logger.addHandler(st)  # 将屏幕流加载到自定义的loger日志系统中
    


    logger.debug("这是一个debug")
    logger.info("这是一个info")
    logger.warning("这是一个warning")
    logger.error("这是一个error")
    logger.critical("这是一个critical")
    
    logger.removeHandler(ft)    # 将Handler移除,避免下次调用,生成同样的Handler导致重复日志,Eg:第一次输出日志一行,第二次输出同样的两行日志(因为又生成了一个Handler)
                                # 第三次输出同样的三行日志
    

    常用方法:

    import logging
    
    ft = logging.FileHandler("logger.log", "a", encoding="utf-8")  # 定义文件流
    Formatter = logging.Formatter('%(asctime)s  Username:%(name)s  message-%(message)s',datefmt='%Y:%m:%d')  # 定义日志输出格式
    ft.setFormatter(Formatter)  # 将格式加载到文件流中
    
    logger = logging.Logger(name='a',level=logging.DEBUG)  # 自定义一个模块系统
    logger.addHandler(ft)  # 将文件流加载到自定义的loger日志系统中
    

      

     


      

  • 相关阅读:
    gcc -l:手动添加链接库
    gcc -S xx
    gcc -E xx.c
    gcc xx -o xx
    gcc -c xx.c 选项讲解
    GCC选项
    关于Apache日志的统计
    Vxlan——原理
    MySQL常见面试题
    php笔试题(3)--转载
  • 原文地址:https://www.cnblogs.com/duoduoyichen/p/10279666.html
Copyright © 2011-2022 走看看