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

      1.导入模块

    >>> import logging

      2.五种日志级别

    #输出时默认只显示警告级别以上的信息,可以使用basicConfig的level参数更改
    >>> logging.basicConfig(level=logging.DEBUG)
    ... logging.debug('调试')
    ... logging.info('信息')
    ... logging.warning('警告')
    ... logging.error('错误')
    ... logging.critical('崩溃')
    
    DEBUG:root:调试
    INFO:root:信息
    WARNING:root:警告
    ERROR:root:错误
    CRITICAL:root:崩溃
    

      3.baseConfig()可选参数

    filename:跟文件名,日志将记录在文件内,指定之后就不会在控制台显示
    filemode:文件打开方式,默认为'a'
    format:指定日志记录格式
    datefmt:指定日期时间格式。
    level:设置显示的日志级别
    

      4.日志记录格式

    %(name)s 哪个用户
    %(levelno)s 数字形式的日志级别
    %(levelname)s 文本形式的日志级别
    %(filename)s 调用函数所在文件名
    %(module)s 调用日志输出函数的模块名
    %(lineno)d 调用函数所在的行
    %(asctime)s 字符串形式的当前时间。
    %(message)s用户输出的消息
    
    示例
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s %(filename)s line:%(lineno)d [%(levelname)s] %(message)s',
                        datefmt='%Y-%m-%d %H:%M:%S')
    logging.error('111')
    2019-09-17 13:51:33 测试专用.py line:15 [ERROR] 111
    

      5.在控制台和文件中同时输出日志

    #导入模块
    import logging
    
    #创建日志文件助手和屏幕显示文件助手
    filehandler = logging.FileHandler('python.log',encoding='utf-8')
    streamhandler = logging.StreamHandler()
    
    #指定日志输出格式,可以指定多个,绑定时可以分别绑定
    format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    
    #将日志格式绑定到助手
    filehandler.setFormatter(format)
    streamhandler.setFormatter(format)
    
    #创建一个logger对象
    logger = logging.getLogger()
    
    #将两个助手添加到logger对象中
    logger.addHandler(filehandler)
    logger.addHandler(streamhandler)
    
    #设置日志显示级别
    logger.setLevel(logging.DEBUG)
    #filehandler.setLevel(logging.DEBUG)   可以单独设置级别
    #streamhandler.setLevel(logging.ERROR)
    
    #输出日志就可以在文件和控制台中同时显示了
    logger.error('casadasdasd')
    

      

      

      

    初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
  • 相关阅读:
    linux常用命令
    Hibernate常用API以及使用说明
    Hibernate使用套路,新手请进
    git 完全讲解 无废话,包含在myeclipse中使用,包括解决冲突
    Spring使用事务增加的注解实现方
    java.lang.ClassCastException: com.sun.proxy.$Proxy27 cannot be cast to com.bbk.n002.service.QuestionService
    使用aspectJ实现Spring AOP的两种方式
    用Diff和Patch工具维护源码
    opennebula 补丁制作与补丁升级
    IPMI总结
  • 原文地址:https://www.cnblogs.com/forlive/p/11533238.html
Copyright © 2011-2022 走看看