28.Python基础篇-logging模块

news/2024/12/21 16:11:00/文章来源:https://www.cnblogs.com/mingbo-1/p/18620855

介绍:

logging 模块是Python内置的强大日志记录工具,支持多种输出方式、格式化选项及多进程支持。

日志的级别

logging 模块有五个内置的日志级别,从低到高:

  • DEBUG:详细信息,用于诊断问题。
  • INFO:常规信息,表示程序正常运行的状态。
  • WARNING:警告信息,表示潜在问题或即将发生的错误。
  • ERROR:错误信息,表示发生了实际错误。
  • CRITICAL:严重错误,表示程序无法继续执行。

演示:

import logginglogging.basicConfig(level=logging.DEBUG,format='%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s',datefmt='%a, %d %b %Y %H:%M:%S',# filename='test.log',# filemode='a'
                    )
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

执行结果:

两种方式

logging.basicConfig()

logging.basicConfig() 用于配置日志的输出方式。常用的参数包括:

  • level: 设置日志级别,决定输出哪些日志。
  • format: 设置日志输出格式。
  • filename: 将日志输出到文件。
  • filemode: 设置文件模式,默认为 'a'(追加模式),可以设置为 'w' 覆盖模式。

日志格式的占位符

  • %(asctime)s:日志记录时间
  • %(levelname)s:日志级别(如DEBUG、INFO)
  • %(message)s:日志消息

logging.getLogger()(推荐使用)

代码说明

import logging# 创建记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)# 创建处理器
console_handler = logging.StreamHandler()
file_handler = logging.FileHandler('app.log')# 创建格式化器
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')# 设置格式
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)# 添加处理器
logger.addHandler(console_handler)
logger.addHandler(file_handler)# 记录日志
logger.info("这条信息会同时输出到控制台和文件")

 

两种方式的区别

basicConfig的方式,只能输出到文件或者控制台,二选一

getLogger通过订制,可以满足同时输出到控制台和文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/856389.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis安装配置

安装gcc环境sudo yum install -y gcc-c++查看gcc环境gcc -v

我们的电视Our tv 3.6.0安卓+TV 一款全新电视直播软件-内置稳定直播源

应用简介 我们的电视(ourtv)是一款完全无广告的电视直播软件,清晰度可选择高清,超清,蓝光等播放。安装即可使用,再也不用费劲去找各种不稳定的直播源了。 “我们的电视”播放线路(直播源)是来自央视频,因此画质和稳定性还可以。不过随之而来的问题是跟央视频 App 不兼…

[HTML/Web] HTML5之`Video`元素

概述:video 元素 核心属性:playbackRate/播放速率在HTML5中,<video> 元素提供了一个 playbackRate 属性,可以用来设置视频的播放速度。这个属性允许你设置视频的倍速播放,比如正常速度、慢速或快速。以下是如何设置 <video> 元素的倍速播放:html<video id…

鸿蒙HarmonyOS应用开发 | HarmonyOS Next-从应用开发到上架全流程解析

HarmonyOS Next-从应用开发到上架全流程解析 随着智能设备的不断普及,操作系统的竞争变得愈加激烈。在这个背景下,华为推出的HarmonyOS(鸿蒙操作系统)逐渐崭露头角,成为一个引人注目的新兴平台。本文将深入探讨HarmonyOS Next的应用开发流程,并特别关注鸿蒙应用上架的全过…

2024-2025-1 20241307《计算机基础与程序设计》第十三周学习总结

作业信息这个作业属于哪个课程 (2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 ([2024-2025-1计算机基础与程序设计第十三周作业]这个作业的目标作业正文 (2024-2025-1 学号20241307《计算机基础与程序设计》第十三周学习总结)教材学习内容总结 C语言程序设计第十二…

移动端笔记应用,markdown应用选用

要求不能有广告。作为使用频率较高的软件,有广告就是恶心人。 支持markdown,包括且不限于代码块、标题、图片等格式。 支持同步,至少拥有WebDav云同步,或者本地导入导出。 全局搜索功能。以上功能必须免费,至少我不明白导入导出有什么好付费的。云同步这种付费理所当然。背…

一个.NET开源、易于使用的屏幕录制工具

前言 一款高效、易用的屏幕录制工具能够极大地提升我们的工作效率和用户体验,今天大姚给大家分享一个.NET开源、免费、易于使用的屏幕录制工具:Captura。 工具介绍 Captura是一款基于.NET开源、免费、易于使用的屏幕录制、截图工具,允许用户录制屏幕活动、捕获屏幕截图、录制…

CDN信息收集

引子:这篇是对架构信息收集中CDN部分的补充,由于Web应用先得注册域名才能使用CDN服务,而我国境内的域名注册需先要备案。又因为笔者目前并没有这方面的需求,因此本文仅简单介绍该如何识别CDN,以及一些常见的CDN绕过方式。免责声明:本文章仅用于交流学习,因文章内容而产生…

20结构伪类-borderz制图-网络字体-字体图标

一、结构伪类-:nth-child 在一些特殊的场景使用结构伪类还是非常方便的。 是真正有用的东西。 之前使用最主要的东西是nth-child() :nth-child(1)这个是选择父元素中的第一个子元素如果是下图这样就不能选中了。这里需要使用另外一个东西,叫做:nth-of-type()用这个东西可以选择…

【关节电机专栏】小米 CyberGear 电机和大然 PDA-04 CAN接口的区别

小米电机CAN接口:大然PDA-04 CAN接口:可见两家的CAN接口 CANL 和 CANH 是相反的。

BBU-Python期末考试复习题目总结

临近期末,抽个时间把BBU - python期末考试会考的题型(原题?)哈哈总结一下,放到我的个人bolg上供大家参考,祝考试高分通过————临近期末,抽个时间把BBU - python期末考试会考的题型(原题?)哈哈总结一下,python考试是比较简单的,题型分为选择题,判断题,填空题,程序…

老生常谈——分布式限流:部分Sentinal源码解读

基础知识HTTP CODE = 429 “请求过多”A. 限流的类型服务端客户端限流的标的IP用户...基本要求准确限制过量的请求。低延时。限流器不能拖慢HTTP响应时间。尽量占用较少的内存。这是一个分布式限流器,可以在多个服务器或者进程之间共享。需要处理异常。当用户的请求被拦截时,…