zoukankan      html  css  js  c++  java
  • python的logging,将log保存到文件

    import logging
    
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s %(filename)s[line:%(lineno)d ] %(levelname)s %(message)s', #时间 文件名 line:行号  levelname logn内容
                        datefmt='%d %b %Y,%a %H:%M:%S', #日 月 年 ,星期 时 分 秒
                        filename='mylog.log',
                        filemode='w')
    
    logging.debug('debug message')
    logging.info('info message')
    logging.warning('warning 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被忽略

    import logging
    logging.basicConfig(level=logging.INFO)
    logger = logging.getLogger(__name__)
     
    logger.info('Start reading database')
    # read database here
     
    records = {'john': 55, 'tom': 66}
    logger.debug('Records: %s', records)
    logger.info('Updating records ...')
    # update records here
     
    logger.info('Finish updating records')

    注:format中引号里面的,除了固定格式的怎么输入怎么输出,写什么就输出什么

    日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL FATAL。

    默认输出warning及以上

    程序里手动写的log等级需要大于或等于basicConfig里的等级才会被写到日志里

    如果用basicConfig配置,只能配置一次,后面的配置不生效,py文件改了再运行也不生效

  • 相关阅读:
    自定义CopyOnWriteHashMap
    NIO中Buffer缓冲区的实现
    TOMCAT原理详解及请求过程
    XSS的原理分析与解剖
    mysql分页查询优化
    java如何正确停止一个线程
    Centos搭建ElasticSearch
    redis集群原理
    Idea-每次修改JS文件都需要重启Idea才能生效解决方法
    java 加密 解密 Illegal key size
  • 原文地址:https://www.cnblogs.com/mghhzAnne/p/7805016.html
Copyright © 2011-2022 走看看