zoukankan      html  css  js  c++  java
  • 日志(模块logging)

    日志(模块logging)

    快速使用

    import logging
    
    logging.basicConfig(filename="cmdb.text",
                        format = "%(asctime)s-%(name)s-%(levename)s-%(module)s-(message)s",
                        datefmt = "%Y-%m-%d %H:%S:%p"
                        level=logging.ERROR)
    
    logging.log(20,"日志内容")
    logging.debug("1")
    logging.info("2")
    logging.warning("3")
    logging.error("4")
    logging.critical("5")
    
    #注意:多次配置无效
    

    应用场景:对于异常处理捕获到的内容,使用日志模块将其保留到日志文件

    import logging
    
    logging.basicConfig(filename="li.text",
                        format = "%(asctime)s-%(name)s-%(levelname)s-%(module)s:(message)s",
                        datefmt = "%Y-%m-%d %H:%S:%p",
                        level=logging.ERROR)
    try:
        print(yang)
    except Exception as e:
        print("杨子良")
        msg = str(e)
        logging.error(msg,exc_info=True)  #exc_info=True打印出错的位置
    
    

    日志的本质

    import logging
    
    file_handler = logging.FileHandler("zi.log","w",encoding="utf-8")   #先创建一个文件对象
    fmt = logging.Formatter(fmt = "%(asctime)s-%(name)s-%(levelname)s-%(module)s:%(message)s") #抽取的格式
    file_handler.setFormatter(fmt) #将两个对象进行关联
    
    logger = logging.Logger("xxxxx",level = logging.ERROR) #如果达到这个水平的错误,便报错内容xxxxx
    
    logger.addHandler(file_handler)
    #反正我也没弄出来,不知道问题出在哪,愁人!
    

    推荐用法

    import logging
    
    file_handler = logging.FileHandler("mo.log","a",encoding="utf-8")   #先创建一个文件对象
    logging.basicConfig(
                       format = "%(asctime)s-%(name)s-%(levelname)s-%(module)s:(message)s",
                       datefmt = "%Y-%m-%d %H:%M:%S:%p",
                       handlers = [file_handler,],
                       level=logging.ERROR)
    
    logging.error("你好")
    #我也是服了,“你好”无法输出
    
    

    日志分割

    import time
    from logging import handlers
    
    file_handler = handlers.TimedRotatingFileHandler(filename = "x3.log", when='s', interval=5, encoding="utf-8",)
    logging.basicConfig(
                       format = "%(asctime)s-%(name)s-%(levelname)s-%(module)s:(message)s",
                       datefmt = "%Y-%m-%d %H:%M:%S:%p",
                       handlers = [file_handler,],
                       level=logging.ERROR)
    
    for i in range(1,1000):
        time.sleep(1)
        logging.error((str(i)))
    
    记录学习的点点滴滴
  • 相关阅读:
    路由器配置深入浅出—静态路由和缺省路由配置
    盘点飞思卡尔i.MX多媒体处理器前世今生 (转)
    ubuntu18.04下取消中键复制粘贴功能
    uboot常用命令及其使用
    MCU软件最佳实践——使用printf打印数据
    uboot无法通过nfs加载ubuntu18.04中的文件(转)
    GNU C字节对齐__attribute__((aligned(n))) #pragma pack(n)
    ENDIAN的由来及BIGEDIAN 和LITTLEENDIAN(转)
    自动生成c# Model属性
    使用JAVA生成随机的AES密钥
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/14875035.html
Copyright © 2011-2022 走看看