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

    logging

    日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改

    logging将日志打印到屏幕,日志级别大小关系为:

    CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,

    当然也可以自己定义日志级别

    DEBUG:详细的信息,通常只出现在诊断问题上。
    INFO:确认一切按预期运行
    WARNING:一个警告,可能会有一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作
    ERROR:个更严重的问题,软件没能执行一些功能
    CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行
    

    默认logging默认的日志级别是info

    日志的输出格式及方式 logging.basicConfig

    import logging
    logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt=' %Y/%m/%d %H:%M:%S', filename='myapp.log', filemode='w')
    logger = logging.getLogger(__name__)
    logging.debug('This is debug message')
    logging.info('This is info message')
    logging.warning('This is warning message')
    
    

    运行结果:

    在当前文件新增了一个myapp.log文件,文件的内容如下:
    2017/11/10 12:43:26 logging.py[line:10] DEBUG This is debug message
    2017/11/10 12:43:26 logging.py[line:11] INFO This is info message
    2017/11/10 12:43:26 logging.py[line:12] WARNING This is warning message
    
    
    logging.basicConfig函数参数
    level: 设置日志级别,默认为logging.WARNING
    filename: 指定日志文件名。
    filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
    format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
    %(levelname)s: 打印日志级别名称
    %(filename)s: 打印当前执行程序名
    %(funcName)s: 打印日志的当前函数
    %(lineno)d: 打印日志的当前行号
    %(asctime)s: 打印日志的时间
    %(thread)d: 打印线程ID
    %(process)d: 打印进程ID
    %(message)s: 打印日志信息
    datefmt: 指定时间格式,同time.strftime()
    stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略
    

    logging.getLogger([name]):创建一个日志对象

    返回一个logger实例,如果没有指定name,返回root

    logger。只要name相同,返回的logger实例都是同一个而且只有一个,即name和logger实例是一一对应的。这意味着,无需把logger实例在各个模块中传递。只要知道name,就能得到同一个logger实例。

    logging.getLogger(name) 在上述实例中__name__就指的是__main__。

  • 相关阅读:
    用JS + WCF打造轻量级WebPart
    提高WCF服务并发能力的简单处理办法
    利用JQuery实现更简单的Ajax跨域请求
    WCF Testing Tool(转)
    [转贴]一个有趣的布局
    [转贴].net中上传视频并将各种视频文件转换成.flv格式
    IE5,IE6,IE7,IE8的css兼容性列表[转自MSDN]
    [转贴]Castle 开发系列文章
    ie6,ie7,ff 的css兼容hack写法
    ExtJs学习笔记(23)ScriptTagProxy+XTemplate+WCF跨域取数据
  • 原文地址:https://www.cnblogs.com/lijunjiang2015/p/7814028.html
Copyright © 2011-2022 走看看