当前位置: 首页 > news >正文

西安网站开发制作2023今日新闻头条

西安网站开发制作,2023今日新闻头条,厦门建设管理局网站首页,餐饮运营策划公司文章目录 相关链接第一篇:日志基础与基本配置1 日志的概念与用途2 Python logging 模块介绍3 日志级别4 配置日志格式和输出位置4.1 配置日志格式4.2 配置输出位置 5 实验:基本日志配置和输出实验1:基本日志配置实验2:使用配置文件…

文章目录

  • 相关链接
  • 第一篇:日志基础与基本配置
  • 1 日志的概念与用途
  • 2 Python logging 模块介绍
  • 3 日志级别
  • 4 配置日志格式和输出位置
    • 4.1 配置日志格式
    • 4.2 配置输出位置
  • 5 实验:基本日志配置和输出
    • 实验1:基本日志配置
    • 实验2:使用配置文件配置日志
  • 6 文章总结

相关链接

  • 【Python日志功能】一.日志基础与基本配置
  • 官方文档:logging — Python 的日志记录工具 — Python 3.12.6 文档
  • 个人博客:issey的博客 - 愿无岁月可回首

第一篇:日志基础与基本配置

在开发和维护应用程序的过程中,日志是一个非常重要的工具。它不仅可以帮助开发者了解程序的运行状态,还能帮助定位和解决问题。本文将详细介绍日志的概念、Python中 logging 模块的基本使用、日志级别以及如何配置日志格式和输出位置,并通过实际示例展示这些配置的效果。

1 日志的概念与用途

日志是一种用于记录程序运行过程中重要事件的工具。通过日志,开发者可以:

  • 了解程序的运行状态和进程。
  • 发现和定位程序中的错误和异常。
  • 分析和优化程序性能。
  • 记录系统或应用程序的使用情况和用户行为。

2 Python logging 模块介绍

Python 的 logging 模块是标准库的一部分,提供了灵活和强大的日志记录功能。它允许开发者将日志消息发送到多个目标,如控制台、文件、网络等。logging 模块支持不同的日志级别、格式化和处理器,使得日志记录更加方便和可控。

3 日志级别

日志级别用于指定日志消息的重要性。Python logging 模块定义了五个标准日志级别,每个级别都有对应的数值:

  • DEBUG (10): 详细的信息, 通常只在诊断问题时使用。
  • INFO (20): 确认程序按预期工作的信息。
  • WARNING (30): 表示某些非严重问题,警告可能会出现问题。
  • ERROR (40): 由于更严重的问题,程序已不能执行某些功能。
  • CRITICAL (50): 严重错误,表明程序可能无法继续运行。

4 配置日志格式和输出位置

logging 模块允许开发者配置日志格式和输出位置。日志格式定义了日志消息的显示方式,而输出位置定义了日志消息的存储位置(如控制台、文件等)。

4.1 配置日志格式

日志格式可以通过 format 参数进行设置,例如:

format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'  # 定义日志消息的格式

4.2 配置输出位置

输出位置可以通过设置处理器(Handler)来配置。例如,可以将日志消息输出到控制台或文件:

import logging# 输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)  # 当日志级别等于或高于INFO时,会输出到控制台。 # 输出到文件
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.WARNING)  # 当日志级别等于或高于WARNING时,会输出到文件。 

5 实验:基本日志配置和输出

在这一部分,我们将通过实际的代码示例来演示如何配置日志并查看输出结果。

实验1:基本日志配置

创建一个简单的 Python 脚本 basic_logging.py

import logging
import os# 获取当前脚本的目录
current_directory = os.path.dirname(os.path.abspath(__file__))# 日志文件的完整路径
log_file_path = os.path.join(current_directory, 'app_1.log')# 配置基本的日志设置
logging.basicConfig(level=logging.INFO,format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',handlers=[logging.StreamHandler(), logging.FileHandler(log_file_path)])logger = logging.getLogger(__name__)# 记录不同级别的日志
logger.debug('这是一个DEBUG级别的日志')
logger.info('这是一个INFO级别的日志')
logger.warning('这是一个WARNING级别的日志')
logger.error('这是一个ERROR级别的日志')
logger.critical('这是一个CRITICAL级别的日志')

运行脚本后,你将看到以下输出:
控制台输出:

2024-07-25 07:50:36,800 - __main__ - INFO - 这是一个INFO级别的日志
2024-07-25 07:50:36,800 - __main__ - WARNING - 这是一个WARNING级别的日志
2024-07-25 07:50:36,801 - __main__ - ERROR - 这是一个ERROR级别的日志
2024-07-25 07:50:36,801 - __main__ - CRITICAL - 这是一个CRITICAL级别的日志

文件 app_1.log 输出:

2024-07-25 07:50:36,800 - __main__ - INFO - 这是一个INFO级别的日志
2024-07-25 07:50:36,800 - __main__ - WARNING - 这是一个WARNING级别的日志
2024-07-25 07:50:36,801 - __main__ - ERROR - 这是一个ERROR级别的日志
2024-07-25 07:50:36,801 - __main__ - CRITICAL - 这是一个CRITICAL级别的日志

在这个实验中,DEBUG 级别的日志不会输出到控制台和文件,因为StreamHandlerFileHandler 的日志等级没有单独设置,它们会默认继承根记录器(root logger)的日志等级,即 logging.basicConfig 中设置的等级INFO

实验2:使用配置文件配置日志

创建一个 YAML 配置文件 logging_config.yaml

version: 1  # 配置文件的版本formatters:  # 定义日志格式化器simple:  # 名为simple的格式化器format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'  # 日志消息的格式,包括时间、记录器名称、日志级别和消息内容handlers:  # 定义日志处理器console:  # 名为console的处理器,输出到控制台class: logging.StreamHandler  # 使用StreamHandler类level: DEBUG  # 处理器的日志级别为DEBUGformatter: simple  # 使用名为simple的格式化器stream: ext://sys.stdout  # 输出到标准输出,即控制台file:  # 名为file的处理器,输出到文件class: logging.FileHandler  # 使用FileHandler类level: WARNING  # 处理器的日志级别为WARNINGformatter: simple  # 使用名为simple的格式化器filename: path/to/app_2.log  # log文件绝对路径loggers:  # 定义日志记录器__main__:  # 针对主模块的记录器level: DEBUG  # 记录器的日志级别为DEBUGhandlers: [console, file]  # 使用console和file两个处理器propagate: no  # 不向更高层次的记录器传递日志消息root:  # 根记录器,适用于所有模块level: DEBUG  # 记录器的日志级别为DEBUGhandlers: [console, file]  # 使用console和file两个处理器

创建一个 Python 脚本 logging_with_config.py 来加载这个配置文件:

import logging.config
import yaml
import os# 获取当前脚本的目录
current_directory = os.path.dirname(os.path.abspath(__file__))# 日志文件的完整路径
cfg_file_path = os.path.join(current_directory, './logging_config.yaml')with open(cfg_file_path, 'r') as f:config = yaml.safe_load(f.read())logging.config.dictConfig(config)logger = logging.getLogger(__name__)# 记录不同级别的日志
logger.debug('这是一个DEBUG级别的日志')
logger.info('这是一个INFO级别的日志')
logger.warning('这是一个WARNING级别的日志')
logger.error('这是一个ERROR级别的日志')
logger.critical('这是一个CRITICAL级别的日志')

运行脚本后,你将看到以下输出:

控制台输出:

2024-07-25 08:04:02,433 - __main__ - DEBUG - 这是一个DEBUG级别的日志
2024-07-25 08:04:02,433 - __main__ - INFO - 这是一个INFO级别的日志
2024-07-25 08:04:02,433 - __main__ - WARNING - 这是一个WARNING级别的日志
2024-07-25 08:04:02,434 - __main__ - ERROR - 这是一个ERROR级别的日志
2024-07-25 08:04:02,434 - __main__ - CRITICAL - 这是一个CRITICAL级别的日志

文件 app_2.log 输出:

2024-07-25 08:04:02,433 - __main__ - WARNING - 这是一个WARNING级别的日志
2024-07-25 08:04:02,434 - __main__ - ERROR - 这是一个ERROR级别的日志
2024-07-25 08:04:02,434 - __main__ - CRITICAL - 这是一个CRITICAL级别的日志

console处理器的等级为INFO,而file处理器的等级为WARNING。所以控制台会输出所有信息,即等级等于或大于DEBUG的信息,但文件中只会记录等级等于或大于WARNING的记录。

6 文章总结

在本篇文章中,我们学习了Python logging 模块的基础内容,包括日志级别、基本配置以及如何将日志输出到控制台和文件。这为我们搭建了日志系统的基本框架,使我们能够了解程序的运行状态和关键事件。

接下来,我们将在第二篇文章中深入探讨更高级的配置内容,重点介绍日志处理器(Handlers)、日志格式器(Formatters)和日志过滤器(Filters)。我们将通过模拟实践,配置不同类型的处理器(如StreamHandlerFileHandlerRotatingFileHandler等),并自定义日志格式和过滤规则,从而更灵活地控制日志的输出目标、格式和内容。

通过这些高级配置,我们可以更好地满足不同应用场景下的日志需求,如限制日志文件大小、按时间轮转日志文件、以及只记录特定级别的日志信息。

http://www.dt0577.cn/news/17611.html

相关文章:

  • 北京网站建设公司哪个最好代运营公司
  • 推荐黄石网站建设seo关键词优化经验技巧
  • 素材网站在哪里找会计培训班推荐
  • 网站负责人拍照网络推广软文怎么写
  • 网站制作 ?B?T优化大师电脑版官网
  • wordpress4.9.1网站优化一年多少钱
  • 企业网站托管跨境网站建站
  • 图派做网站软文世界
  • 网站买流量是怎么做的高端营销型网站制作
  • 做 直销网站 公司国家卫生健康委
  • 禹州做网站bz3399百度电脑版入口
  • 做吗查网站的流量seo基础教程视频
  • dw做的网站如何上传云服务全国免费信息发布平台
  • wordpress作者页面显示评论常州网站建设优化
  • 贵州省政府门户网站建设建议搜狗站长平台打不开
  • 网站开发经验与教训免费打广告网站
  • 珠海个人建站模板搜索引擎优化什么意思
  • 株洲网站搜索优化南宁seo主管
  • 网站做不了301重定向北京seo关键词优化收费
  • 交互做的不好的网站7个经典软文营销案例
  • 正邦设计上海分公司朝阳seo搜索引擎
  • 宠物网站设计模板长春网站制作方案定制
  • 网站首页布局修改西安官网seo
  • 博客网站怎么搭建网站营销推广
  • 嘉瑞建设有限公司网站网络推广平台软件app
  • 淘宝网店代运营班级优化大师手机版下载
  • 网站数据库修改密码要怎么做福州seo经理招聘
  • 做外贸建网站多少钱市场推广方式有哪几种
  • 佛山网站建设正规公司网站页面优化方法
  • 长春做网站好的公司阻断艾滋病的药有哪些