• Python打印log,包括行号,路径,方法名,文件


    logger.py 文件


     #!/usr/bin/python
     # coding: utf-8
      
     import logging
     import logging.handlers
     from logging import *
     from datetime import *
     
     logger = logging.getLogger()
     logger.setLevel(logging.DEBUG)
     
     rht = logging.handlers.TimedRotatingFileHandler("reindex_out.log", 'D')
     fmt = logging.Formatter("%(asctime)s %(pathname)s %(filename)s %(funcName)s %(lineno)s 
          %(levelname)s - %(message)s", "%Y-%m-%d %H:%M:%S")
     rht.setFormatter(fmt)
     logger.addHandler(rht)
     
     debug = logger.debug
     info = logger.info
     warning = logger.warn
     error = logger.error
     critical = logger.critical


    测试脚本

    #!/usr/bin/env python
    # coding utf-8
     
    from logger import *
    import sys
    import os
     
    info("log from logger info")
    
    debug("this is from test.py")
    print 'current dir is ' + os.getcwd()

    format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
     
    %(levelno)s:         打印日志级别的数值
     %(levelname)s:    打印日志级别名称
     %(pathname)s:    打印当前执行程序的路径,其实就是sys.argv[0]
     %(filename)s:      打印当前执行程序名
     %(funcName)s:    打印日志的当前函数
     %(lineno)d:         打印日志的当前行号
     %(asctime)s:      打印日志的时间
     %(thread)d:        打印线程ID
     %(threadName)s: 打印线程名称
     %(process)d:      打印进程ID
     %(message)s:    打印日志信息

    datefmt: 指定时间格式,同time.strftime()

    level: 设置日志级别,默认为logging.WARNING

    级别 对应的值
    CRITICAL 50
    ERROR 40
    WARNING 30
    INFO 20
    DEBUG 10
    NOTSET 0

    可以给日志对象(Logger Instance)设置日志级别,低于该级别的日志消息将会被忽略,也可以给Hanlder设置日志级别,对于低于该级别的日志消息, Handler也会忽略。


  • 相关阅读:
    mybatis四大接口之 ParameterHandler
    mybatis四大接口之 Executor
    网络协议
    4、Android UI测试
    3、Android构建仪表测试
    【翻译】Ext JS 6.2 早期访问版本发布
    2、Android构建本地单元测试
    1、Android测试入门
    安卓中的事件分发机制源码解析
    安卓IPC机制之Binder详解
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206780.html
Copyright © 2020-2023  润新知