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

python爬虫(四) ---- yaml文件配置简单日志

python爬虫之yaml文件配置简单日志

  • 一、环境准备
  • 二、配置示例
  • 三、目录结构及结果展示

一、环境准备

# 第三方日志包, 可以按日期和文件大小轮转日志
pip install concurrent-log-handler 
# 加载yaml文件需要的依赖包
pip install pyyaml

二、配置示例

  • config/logging_config.py
    import logging
    import logging.config
    import os
    import yaml_logger_initialized = Falsedef setup_logger(config_path="../config/logging_config.yaml"):global _logger_initializedif _logger_initialized:returnprint(f"正在尝试加载日志配置文件:{os.path.abspath(config_path)}")  # 调试输出路径if not os.path.exists(config_path):raise FileNotFoundError(f"日志配置文件未找到: {config_path}")with open(config_path, "r", encoding="utf-8") as f:config = yaml.safe_load(f)# 提取所有 file 类型 handler 的日志文件路径, 如果目录不存在, 自动创建handlers = config.get('handlers', {})for handler in handlers.values():if 'filename' in handler:log_file = handler['filename']log_dir = os.path.dirname(log_file)if log_dir and not os.path.exists(log_dir):os.makedirs(log_dir, exist_ok=True)print(f"已创建日志目录:{log_dir}")logging.config.dictConfig(config)_logger_initialized = True
  • config/logging_config.yaml
    version: 1
    disable_existing_loggers: Falseformatters:simple:format: "%(asctime)s - %(levelname)s - %(name)s.%(funcName)s:%(lineno)d - %(message)s"handlers:#控制台日志console:class: logging.StreamHandlerlevel: INFOformatter: simplestream: ext://sys.stdout#info日志文件, 按时间和文件大小轮转info_file:class: concurrent_log_handler.ConcurrentTimedRotatingFileHandlerlevel: INFOformatter: simplefilename: ../logs/info/log_info.logwhen: midnightbackupCount: 7maxBytes: 104857600  # 100 MBencoding: utf8#error日志文件, 按时间和文件大小轮转error_file:class: concurrent_log_handler.ConcurrentTimedRotatingFileHandlerlevel: ERRORformatter: simplefilename: ../logs/error/log_error.logwhen: midnightbackupCount: 7maxBytes: 104857600  # 100 MBencoding: utf8loggers:root:  # root loggerlevel: DEBUGhandlers: [console, info_file, error_file]#指定某一个文件中的日志级别'spiders.js_spider':level: INFO
    

三、目录结构及结果展示

  • 执行时需要在主函数main方法中执行setup_logger()初始化日志
    在这里插入图片描述
http://www.dtcms.com/a/453318.html

相关文章:

  • 免费网站专业建站班级网页设计图片
  • 网站建设与功能模块最好的淘宝网站建设
  • Flink 内置 Watermark 生成器单调递增与有界乱序怎么选?
  • 怎么下载网站备案号wordpress首页显示文章图片
  • 扩展云镜像磁盘空间案例:AlmaLinux 9 云镜像扩展
  • 招聘网站上找在家做seo最好的工具
  • 常用的网站建设技术软件开发工程师招聘简章pdf
  • ppt免费网站专门查企业信息的网站
  • 临时造参数查全量数据
  • 国产能谱仪设计与验证核心经验教训简化表
  • 0.6 卷积神经网络
  • 架设网站flash不显示深圳网站自然优化
  • C++ ros2 debug
  • 深入解析:Object.prototype.toString.call() 的工作原理与实战应用
  • 浙江建设网站公司广告点击一次多少钱
  • 图表全能王 (ChartStudio) 新增多种图表支持,助力数据可视化
  • 网页制作免费网站网页制作工作总结
  • java快速复习
  • Day 24 - 文件、目录与路径 - Python学习笔记
  • 第9讲:函数递归——用“套娃”思维解决复杂问题
  • 东莞网站竞价推广运营百度云虚拟主机如何建设网站
  • 权限管理混乱微服务安全架构:OAuth2.0+JWT无感刷新方案非法请求拦截率
  • 北京理工大学网站开发与应用彩票网站开发彩票网站搭建
  • 网站建设公司重庆装修设计公司公司价格表
  • 厦门市建设局查询保障摇号网站首页系统开发板价格
  • 金溪网站建设制作电商系统开发公司
  • 直方图 vs 箱线图:两种看数据分布的思路差异
  • 构建AI智能体:五十六、从链到图:LangGraph解析--构建智能AI工作流的艺术工具
  • 【Spring】AOP的核心原理配方
  • 惠州建站平台建筑人才网招聘信息