python日志模块写入不同文件_Python实用教程系列——Logging日志模块

那个百分十先生:Python实用教程系列——异常处理​zhuanlan.zhihu.com

上篇文章讲述了Python中的相关异常的知识,包括异常的种类以及异常的处理方式,以及使用实例的方式说明了一些常用异常的处理。这次,我们来讲述一下Python中的另一个实用的教程,日志相关的知识。

很多的小伙伴在平时写代码的时候,基本上使用的都是使用print()函数来进行一些日志的打印,使用print()来进行一些代码的调试,在较小的程序中这样做是可以的。但是在实际的工程项目中,我们需要保存程序运行的日志,以排查程序在某一个时候崩溃的具体原因,以便及时定位Bug进行抢救,而在Python中,logging就可以十分灵活的帮助我们记录程序运行的过程的中的一些信息。

那么日志的作用是什么呢?

归纳起来日志的作用有三点:进行程序(代码)的调试

程序运行过程中的问题定位和分析

收集程序运行的情况

接下来我们就来介绍Python中的标准库Logging的相关知识:

一、日志等级

Logging中的日志等级如下:

使用Python的小伙伴对WARNING和ERROR特别的熟悉,在一些模块版本过低的时候运行程序就会出现WARNING的警告。我们来看一些代码:

import logging

import logging

# 设置打印日志的级别,level级别以上的日志会打印出

# level=logging.DEBUG 、INFO 、WARNING、ERROR、CRITICAL

def log_testing():

# 此处进行Logging.basicConfig() 设置,后面设置无效

logging.basicConfig(level=logging.ERROR)

logging.debug('debug,用来打印一些调试信息,级别最低')

logging.info('info,用来打印一些正常的操作信息')

logging.warning('waring,用来用来打印警告信息')

logging.error('error,一般用来打印一些错误信息')

logging.critical('critical,用来打印一些致命的错误信息,等级最高')

log_testing()

当然了,上述的一些信息是输出到控制台的,下文我们将介绍日志输出到文件的方法。细心的小伙伴会发现

logging.basicConfig(level=http://logging.INFO)

这段代码主要是用来配置日志的输出的,代码会将level以上级别日志输出,比如设置

level=logging.ERROR.

稍微总结一下就是:程序在运行的过程中会记录下大于或等于这个日志级别的日志信息,如果不设置level的值则打印大于等于 WARNING 级别的日志。

二、Logging.basicConfig()

logging.basicConfig()的参数除了日志等级的这个参数可以设置以外,还可以设置其他的参数,比如:

上表提到日志的输出格式参数format,其控制着日志输出的一些格式:

我们来看看怎么使用:

import logging

# 设置打印日志的级别,level级别以上的日志会打印出

# level=logging.DEBUG 、INFO 、WARNING、ERROR、CRITICAL

def log_testing():

# 此处进行Logging.basicConfig() 设置,后面设置无效

logging.basicConfig(filename='log.txt',

format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s-%(funcName)s',

level=logging.ERROR)

logging.debug('debug,用来打印一些调试信息,级别最低')

logging.info('info,用来打印一些正常的操作信息')

logging.warning('waring,用来用来打印警告信息')

logging.error('error,一般用来打印一些错误信息')

logging.critical('critical,用来打印一些致命的错误信息,等级最高')

log_testing()

filemode也是一个常用的参数,不设的话默认为'a',即追加模式;也可以设为'w',那么每次写日志会覆盖之前的日志。

上述代码产生的日志文件截图如下:

上述日志详情中出现了一个root字眼,这是root日志器的意思,我们也可以使用logging.getLogger()函数来自定义一个日志器:

import logging

def log_testing():

selfl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值