zoukankan      html  css  js  c++  java
  • 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也会忽略。


  • 相关阅读:
    JavaScript学习总结【5】、JS DOM
    JavaScript学习总结【11】、JS 运动
    JavaScript学习总结【7】、JS RegExp
    JavaScript学习总结【1】、初识JS
    JavaScript学习总结【10】、DOM 事件
    直接选择排序及交换二个数据的实现
    快速排序
    Lucene.net搜索结果排序(单条件和多条件)
    冒泡排序
    直接插入排序的三种实现
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206780.html
Copyright © 2011-2022 走看看