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

    logging

    用于便捷既然日志切线程安全的模块

    vim log_test.py

    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.DEBUG)
    
    logging.debug('debug')
    logging.info('info')
    logging.warning('warning')
    logging.error('error')
    logging.critical('critical')
    logging.log(10,'log')
    

    运行生成日志文件log.log

    模拟一个生成错误日志的脚本

    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.DEBUG)
    
    while True:
        option = raw_input("input a digit:")
        if option.isdigit():
            print "hehe",option
            logging.info('option correct')
        else:
            logging.error('Must input a digit!')

    执行如果输入的是数字,写入info日志如果不是则写成error日志

    PS:level=logging.DEBUG 是代表最低记录基本如果改成WARNING则不会记录info,debug信息就算设置了

    上面是把日志写到文件里面

    把日志显示到屏幕上面有输出到文件

    import logging
    
    logger = logging.getLogger("simple_example")
    logger.setLevel(logging.DEBUG)
    #on screen
    ch = logging.StreamHandler()
    ch.setLevel(logging.WARNING)
    #into file
    fh = logging.FileHandler("log2.log")
    fh.setLevel(logging.DEBUG)
    
    formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
    
    ch.setFormatter(formatter)
    fh.setFormatter(formatter)
    
    logger.addHandler(ch)
    logger.addHandler(fh)
    
    logger.debug("debug msg...")
    logger.info("info msg...")
    logger.warn("warn msg...")
    logger.error("error msg...")
    logger.critical("critical msg...")
    

    屏幕没有输出debug信息

  • 相关阅读:
    Gitblit 的安装使用
    PLSQL 美化规则文件详解
    SQL Server Agent的作用
    使用C#创建Widows服务
    关于VS编译DevExpress默认产生几个多余的语言包的问题解决
    (转)查询A、B表中,A表中存在B表不存在的数据
    子类构造、析构时调用父类的构造、析构函数顺序
    ACCDB与MDB的读取区别
    vue中如何动态添加readonly属性
    windows下生成文件夹目录结构
  • 原文地址:https://www.cnblogs.com/minseo/p/6864236.html
Copyright © 2011-2022 走看看