Logging的简单使用

日志级别    使用场景


DEBUG    debug级别用来记录详细的信息,方便定位问题进行调试,在生产环境我们一般不开启DEBUG
INFO    用来记录关键代码点的信息,以便代码是否按照我们预期的执行,生产环境通常会设置INFO级别
WARNING    记录某些不预期发生的情况,如磁盘不足
ERROR    由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL    当发生严重错误,导致应用程序不能继续运行时记录的信息
      


logging默认只会输出error之后的信息,并且只是输出在标准输出流中,我真可以在BasicConfig中设置 “level” ,来讲所有的等级的信息都进行输出,

import logging
logging.basicConfig( level=logging.DEBUG)
logging.debug("this is debug")
logging.info("this is info")
logging.error("this is error")

日志记录到文件

前面的日志默认会把日志输出到标准输出流,就是只在命令行窗口输出,程序重启后历史日志没地方找,所以把日志内容永久记录是一个很常见的需求。同样通过配置函数logging.basicConfig可以指定日志输出到什么地方

import logging
logging.basicConfig(filename="test.log", level=logging.INFO)
logging.debug("this is debug")
logging.info("this is info")
logging.error("this is error")

指定日志格式

默认输出的格式包含3部分,日志级别,日志记录器的名字,以及日志内容,中间用“:”连接。 如果我们想改变日志格式,例如想加入日期时间、显示日志器名字,我们是可以指定format参数来设置日志的格式


import logging
logging.basicConfig(format='%(asctime)s %(levelname)s %(name)s %(message)s')
logging.error("this is error")

Logging.basicConfig的作用

1、创建一个root记录器

2、设置root的日志级别为warning

3、为root记录器添加StreamHandler处理器

4、为处理器设置一个简单格式器

logging.basicConfig()
logging.warning("hello")


这两行代码其实就等价于:

import sys
import logging
from logging import StreamHandler
from logging import Formatter


logger = logging.getLogger("root")
logger.setLevel(logging.WARNING)
handler = StreamHandler(sys.stderr)
logger.addHandler(handler)
formatter = Formatter(" %(levelname)s:%(name)s:%(message)s")
handler.setFormatter(formatter)
logger.warning("hello")


logging.basicConfig 方法做的事情是相当于给日志系统做一个最基本的配置,方便开发者快速接入使用。它必须在开始记录日志前调用。不过如果 root 记录器已经指定有其它处理器,这时候你再调用basciConfig,则该方式将失效,它什么都不做。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值