Python的log日志功能及设置方法

 更新时间:2019年07月11日 16:27:19   作者:DefaultTest   我要评论

今天小编就为大家分享一篇Python的log日志功能及设置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

引入:Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍

一、日志级别(从低到高):

DEBUG :详细的信息,通常只出现在诊断问题上

INFO:确认一切按预期运行

WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。

ERROR:更?#29616;?#30340;问题,软件没能执行一些功能

CRITICAL :一个?#29616;?#30340;错误,这表明程序本身可能无法继续运行

注:这5个等级,也分别对应5?#25191;?#26085;志的方法: debug 、info 、warning 、error 、critical。默认的是WARNING,当在WARNING或之上时才被跟踪。

二、日志输出:显示到控制台或保存到文件中,可以灵活选用

# 这里为了简便,同时处理:输出控制台和保存到文件中
​
import logging 
​
# 第一步,创建一个logger 
logger = logging.getLogger() 
logger.setLevel(logging.INFO) # Log等级总开关 
​
# 第二步,创建一个handler,用于写入日志文件 
logfile = './log.txt' 
fh = logging.FileHandler(logfile, mode='a') # open的打开模式这里可以进行参考
fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关 
​
# 第三步,再创建一个handler,用于输出到控制台 
ch = logging.StreamHandler() 
ch.setLevel(logging.WARNING)  # 输出到console的log等级的开关 
​
# 第四步,定义handler的输出格式 
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s") 
fh.setFormatter(formatter) 
ch.setFormatter(formatter) 
​
# 第五步,将logger添加到handler里面 
logger.addHandler(fh) 
logger.addHandler(ch) 
​
# 日志 
logger.debug('这是 logger debug message') 
logger.info('这是 logger info message') 
logger.warning('这是 logger warning message') 
logger.error('这是 logger error message') 
logger.critical('这是 logger critical message')

三、日志格式说明

logging.basicConfig函数中,可以指定日志的输出格式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: 打印日志信息

以上这篇Python的log日志功能及设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python科学计算包numpy用法实例详解

    Python科学计算包numpy用法实例详解

    这篇文章主要介绍了Python科学计算包numpy用法,结合实例形式详细分析了Python基于科学计算包numpy在数据结构、数据处理及科学计算等方面的相关操作?#35760;?需要的朋友可以参考下
    2018-02-02
  • 基于Numpy.convolve使用Python实?#21482;?#21160;平均滤波的思路详解

    基于Numpy.convolve使用Python实?#21482;?#21160;平均滤波的思路详解

    这篇文章主要介绍了Python极简实?#21482;?#21160;平均滤波(基于Numpy.convolve)的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • python类继承与子类实例初始化用法分析

    python类继承与子类实例初始化用法分析

    这篇文章主要介绍了python类继承与子类实例初始化用法,实例分析了Python类的使用?#35760;?具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • python GUI实现小球满屏乱跑效果

    python GUI实现小球满屏乱跑效果

    这篇文章主要为大家详细介绍了python GUI实现小球满屏乱跑效果,具有一定的参考价值,?#34892;?#36259;的小伙伴们可以参?#23478;?#19979;
    2019-05-05
  • python sys.argv[]用法实例详解

    python sys.argv[]用法实例详解

    sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始,下面通过实例给大家介绍python sys.argv[]用法,?#34892;?#36259;的朋友一起看看吧
    2018-05-05
  • Windows下Python使用Pandas模块操作Excel文件的教程

    Windows下Python使用Pandas模块操作Excel文件的教程

    Pandas是一个强大的Python数据分析模块,这里我们先使用ANACONDA来帮助获取Pandas所以来的一些环境,然后来初步学习Windows下Python使用Pandas模块操作Excel文件的教程
    2016-05-05
  • 最新评论

    常用在线小工具

    时时彩包赢公式0369
    山东11选5加奖的广告 上海快3开奖历史结果 彩票中奖税率 排列3试机号 江西快3当天开奖结果 彩经网双色球杀号汇总 白小姐特马信封2019 四川快乐12详情 足彩任选9场中奖 中国足彩网5元 北京pk10买9码稳中方法 巴登娱乐城代理加盟 江苏时时彩预测软件下载 球探篮球比分 彩客网胜平负