【Python】logging库的介绍及用法

目录

1、logging库应用场景

2、logging库-标准库


1、logging库应用场景

Python 的 logging 库提供了灵活的日志记录系统。在开发和运行程序时,logging 库是非常有用的,可以帮助开发者理解程序的运行情况、排查错误,以下是一些常见的应用场景:

1.调试 :当开发者需要调试程序时,可以使用 logging 来记录和查看程序运行过程中的相关信息。

2.错误跟踪 :对于生产环境中的应用程序,通过 logging 记录错误信息或异常堆栈,能够帮助开发者定位和解决问题。

3.数据分析或审计 :在某些需要记录用户行为的场景下(如反欺诈、风险控制),可以使用 logging 来记录用户的操作,然后在之后对这些日志数据进行分析。

4.系统监控 :可以使用 logging 记录关于系统运行情况、性能数据的日志,然后结合一些工具进行实时的系统监控。

5.日志文件管理 :在运行大型应用程序时,可能会产生大量日志,此时,通过 logging 模块的 FileHandler、RotatingFileHandler 等功能,可以很好的进行日志文件的管理,比如按照时间或文件大小进行日志文件的分割。

2、logging库-标准库

logging库提供了非常丰富的日志处理选项。下面是一些比较常用的方法和类:

  • logging.debug(msg, *args, **kwargs): 创建一条严重级别为DEBUG的日志记录。

  • logging.info(msg, *args, **kwargs): 创建一条严重级别为INFO的日志记录。

  • logging.warning(msg, *args, **kwargs): 创建一条严重级别为WARNING的日志记录。

  • logging.error(msg, *args, **kwargs): 创建一条严重级别为ERROR的日志记录。

  • logging.critical(msg, *args, **kwargs): 创建一条严重级别为CRITICAL的日志记录。

  • logging.log(level, *args, **kwargs): 创建一条严重级别为'level'的日志记录。

  • logging.basicConfig(**kwargs): 对root logger进行一次性配置。

另外还有一些类,例如:

  • logging.Logger: Logger类的实例表示一个程序的日志的概念对象。

  • logging.Handler: (基类) Handler实例将日志记录(dispatch)发送到其应显示或存储的适当的目的地。

  • logging.Filter: (基类) Filter实例提供了更好的粒度控制,它可以决定输出哪些日志记录。

  • logging.Formatter: (基类) Formatter实例将日志记录转换为(通常为字符串)的最终输出。

这只是logging库中的一部分,库中还包含了很多其他的功能和工具。推荐查阅Python的官方文档获得更全面的信息。

这里有一些 logging 模块常用方法的例子:

  • 创建日志记录: 

  • import logging
    
    logging.debug('This is a debug message')
    logging.info('This is an info message')
    logging.warning('This is a warning message')
    logging.error('This is an error message')
    logging.critical('This is a critical message')
  • 设置日志级别: 

  • import logging
    
    logging.basicConfig(level=logging.DEBUG)
    logging.debug('This will get logged')

这段代码首先设置了logging的基础配置,然后记录了一条DEBUG级别的消息。由于设置了level为DEBUG,因此这条消息会被记录。

  • 输出日志到文件: 

  • import logging
    
    logging.basicConfig(filename='app.log', filemode='w', format='%(name)s - %(levelname)s - %(message)s')
    logging.warning('This will get logged to a file')

你会发现在你的程序所在的目录下多了一个 app.log 文件,文件中有一条 root - WARNING - This will get logged to a file 的记录。

  • 更改默认级别,并写入文件:

  • import logging
    logging.basicConfig(filename='example.log', level=logging.DEBUG)
    logging.debug('This message should go to the log file')
    logging.info('So should this')
    logging.warning('And this, too')
    logging.error('And non-ASCII stuff, too, like Øresund and Malmö')

这段代码将会在'example.log'文件中记录各级别的日志。

  • 使用不同的日志处理器:

  • import logging
    
    # 创建一个logger
    logger = logging.getLogger('mylogger')
    logger.setLevel(logging.DEBUG)
    
    # 创建一个handler,用于写入日志文件
    fh = logging.FileHandler('file.log')
    fh.setLevel(logging.DEBUG)
    
    # 再创建一个handler,用于输出到控制台
    ch = logging.StreamHandler()
    ch.setLevel(logging.WARNING)
    
    # 定义handler的输出格式
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)
    
    # 给logger添加handler
    logger.addHandler(fh)
    logger.addHandler(ch)
    
    # 记录一条日志
    logger.info('This is a log info')
    logger.debug('Debugging')
    logger.warning('Warning exists')
    logger.info('Finish')

这段代码在文件和控制台上记录不同级别的日志,并设置了日志的输出格式。

希望这些例子能帮助你理解 logging 模块。在实际应用中,你可能需要创建你自己的 logger,为它添加更多的 handler 和 formatter 等。具体的,你可以参考 Python 官方文档进行更多的了解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值