书写日志

在大型软件项目中,添加日志可以快速找到出错的地方。

1日志级别

1.DEBUG
2.INFO
3.WARNING
4.ERROR
5.CRITICAL
说明:
. DEBUG:详细的信息,通常只出现在诊断问题上
. INFO:确认一切按预期运行
. WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如:磁盘空间低)。这个软件还能按预期工作。
. ERROR:更严重的问题,软件还没能执行一些功能。
. CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行。
这5个等级,也分别对应5种打日志:debug、info、warning、error、critical。默认WARNING,当WARNING或之上时才被跟踪。

2.日志输出

有两种方式记录跟踪,一种输出控制台,另一种是记录到文件中,如日志文件。

2.1、将日志输出到控制台

比如,log1.py如下:

import logging
logging.basicConfig(level=logging.WARNING,format='%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(message)s')
#开始使用log功能
logging.info('这是 logging info message')
logging.info('这是 logging debug message')
logging.info('这是 logging a warning message')
logging.info('这是 logging error message')
logging.info('这是 logging critical message')

2.2、我们还可以将日志输出到文件,只要在loging.basicConfig函数中设置好输出文件的名和写文件模式。

log2.py如下:

import logging
logging.basicConfig(level=logging.WARNING,
                    filename='./log.txt',
                    filemode='w',
                    format='%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(message)s')
#开始使用log功能
logging.info('这是 logging info message')
logging.info('这是 logging debug message')
logging.info('这是 logging a warning message')
logging.info('这是 logging error message')
logging.info('这是 logging critical message')

2.3、既要把日志输出到控制台,还要写入日志文件

这就需要一个叫做Logger的对象来帮忙,下面对他进行详细的介绍,现在这里先学习怎么实现把日志既要输出到控制台,又要输出到文件的功能。

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.basicConfig(level=logging.WARNING,format='%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
#第五步,将logger添加到handler里面
logger.addHandler(fh)
logging._addHandlerRef(ch)
#第五步,日志
logging.info('这是 logging info message')
logging.info('这是 logging debug message')
logging.info('这是 logging a warning message')
logging.info('这是 logging error message')
logging.info('这是 logging critical message')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值