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也会忽略。


  • 相关阅读:
    Spring AOP 代理创建方式
    VS全局搜索
    uni-app中添加AES加密
    中国菜刀"连接被重置"问题解决
    Windows go get下载包失败问题解决
    搭建vulhub 漏洞环境及安装Docker和docker-compose
    DedeCMS 5.7通用重装漏洞分析
    各就各位,预备,GO!
    ARL资产灯塔系统分组资产导出脚本
    玩《巫师3》需要了解的背景知识
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206780.html
Copyright © 2011-2022 走看看