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

    ##
    importlogging

    logging.debug('debug  message')
    logging.info('info  message')
    logging.warning('warning  message')    #  WARNING:root:warning  message
    logging.error('error  message')        #  ERROR:root:error  message
    logging.critical('critical  message')     #  CRITICAL:root:critical  message
    这里是在控制台显示

    logging.basicConfig(level=logging.DEBUG,
        format='%(asctime)s  %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
        datefmt='%a, %d %b %Y %H:%M:%S',
        filename='myapp.log',
        filemode='w')
    加了这个过后,是写到文件里面,写到myapp.log里面
    asctime是时间,datefmt就是设置这个的,filename是文件名字,lineno是代码中的行号,levelname表示上面级别的名字message就是显示的信息,filemode模式是控制写到文件还是其他地方。
    ##文件内容
    Sat,  30  Dec  2017  01:27:05  logging_module.py  [line:12] DEBUG  debug  message
    Sat,  30  Dec  2017  01:27:05  logging_module.py  [line:13]  INFO  info  message
    Sat,  30  Dec  2017  01:27:05  logging_module.py  [line:14]  WARNING  warning message
    Sat,  30  Dec  2017  01:27:05  logging_module.py  [line:15]  ERROR  error  message
    Sat,  30  Dec  2017  01:27:05  logging_module.py  [line:16]  CRITICAL  critical  message
    这个是文件显示

    logging.basicConfig函数各参数:
    filename: 指定日志文件名
    filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
    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
    stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略
    源文档 <http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html>


    #下面这里设置记录到文件和屏幕显示
    logger = logging.getLogger()          #  获取一个logger对象
    fh = logging.FileHandler('test.log')           #  创建一个handler,用于写入日志文件,文件输出对象
    ch = logging.StreamHandler()               #  创建一个handler,用于输出到控制台,屏幕输出对象
    formatter = logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')             # 格式对象

    fh.setFormatter(formatter)      # 给两个输出对象设置格式
    ch.setFormatter(formatter)

    logger.addHandler(fh)      # 日志添加输出对象
    logger.addHandler(ch)

    logger.setLevel(logging.DEBUG)            #  设置等级

    logger.debug('loggerdebugmessage')
    logger.info('loggerinfomessage')
    logger.warning('loggerwarningmessage')
    logger.error('loggererrormessage')
    logger.critical('loggercriticalmessage')
    #使用步骤:获取logger对象,建立handler对象,handler对象设置格式,logger对象添加handler对象,使用


    ##深入一点的应该要到使用的时候

  • 相关阅读:
    6-Python爬虫-分布式爬虫/Redis
    ES 查询时 排序报错(fielddata is disabled on text fileds by default ... )解决方法
    Intellij Idea webstorm 激活
    Intellij Idea 配置jdk
    java 获取(格式化)日期格式
    js 跳转 XSS漏洞 预防
    CSS去掉背景颜色
    js对象无法当成参数传递 解决方法
    Elasticsearch java api
    java多条件查询SQL语句拼接的小技巧
  • 原文地址:https://www.cnblogs.com/-nbloser/p/8159132.html
Copyright © 2011-2022 走看看