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

自己做的网站怎么排名100个关键词

自己做的网站怎么排名,100个关键词,网站没有备案可以做seo优化吗,西安网站推广公司Python 的 logging 模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查。它提供了丰富的功能,包括多级日志记录、多种输出方式、灵活的格式配置等。以下是详细介绍: 一、为什么使用 logging 模块?…

在这里插入图片描述

Python 的 logging 模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查。它提供了丰富的功能,包括多级日志记录、多种输出方式、灵活的格式配置等。以下是详细介绍:


一、为什么使用 logging 模块?

  • 替代 printprint 语句仅适合简单调试,而 logging 支持持久化、级别控制、异步写入等。
  • 分级日志:根据重要性区分日志(如 DEBUG、INFO、ERROR),便于过滤信息。
  • 灵活输出:可同时输出到控制台、文件、网络等。
  • 线程安全:适用于多线程/多进程环境。

二、核心组件

  1. Logger(记录器)
    应用程序直接调用的接口,负责产生日志。

    • 通过 logging.getLogger(name) 获取或创建 Logger 实例。
    • 支持层级结构(如 'parent.child' 继承父级配置)。
  2. Handler(处理器)
    决定日志的输出位置(如控制台、文件、邮件等)。

    • 常用 Handler:
      • StreamHandler:输出到流(如控制台)。
      • FileHandler:输出到文件。
      • RotatingFileHandler:按大小滚动日志文件。
      • TimedRotatingFileHandler:按时间滚动日志文件。
      • SMTPHandler:发送邮件。
  3. Filter(过滤器)
    提供更细粒度的日志过滤(如仅记录特定关键词的日志)。

  4. Formatter(格式器)
    定义日志的输出格式(时间、级别、消息等)。

    • 常用格式字段:
      '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
      

三、日志级别

从低到高共 6 个级别(低于设定级别的日志将被忽略):

级别数值说明
DEBUG10详细调试信息
INFO20程序正常运行信息
WARNING30潜在问题,但程序仍运行
ERROR40严重错误,影响部分功能
CRITICAL50致命错误,可能导致程序终止

四、基本使用步骤

  1. 创建 Logger

    import logginglogger = logging.getLogger(__name__)  # 推荐使用模块名作为Logger名称
    logger.setLevel(logging.DEBUG)        # 设置记录的最低级别
    
  2. 配置 Handler 和 Formatter

    # 创建控制台 Handler
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.WARNING)  # 控制台只输出 WARNING 及以上级别# 创建文件 Handler
    file_handler = logging.FileHandler('app.log')
    file_handler.setLevel(logging.DEBUG)      # 文件记录所有 DEBUG 及以上级别# 定义 Formatter
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    console_handler.setFormatter(formatter)
    file_handler.setFormatter(formatter)# 将 Handler 添加到 Logger
    logger.addHandler(console_handler)
    logger.addHandler(file_handler)
    
  3. 记录日志

    logger.debug('Debug 信息')
    logger.info('程序启动')
    logger.warning('磁盘空间不足')
    logger.error('请求超时')
    

五、快速配置(basicConfig

适用于简单场景的快速配置:

import logginglogging.basicConfig(level=logging.INFO,format='%(asctime)s - %(levelname)s - %(message)s',handlers=[logging.FileHandler('app.log'),logging.StreamHandler()]
)logging.warning('警告信息')

六、高级用法

  1. 配置文件或字典
    使用 logging.config 模块通过文件或字典配置:

    import logging.configconfig = {'version': 1,'formatters': {'default': {'format': '%(asctime)s - %(levelname)s - %(message)s'}},'handlers': {'console': {'class': 'logging.StreamHandler','formatter': 'default','level': 'DEBUG'}},'root': {'handlers': ['console'],'level': 'INFO'}
    }logging.config.dictConfig(config)
    
  2. 捕获异常信息
    使用 logger.exception 记录异常堆栈:

    try:1 / 0
    except Exception:logger.exception('发生异常:')
    
  3. 日志传播
    子 Logger 默认将日志传递给父 Logger。可通过 logger.propagate = False 关闭。


七、常见问题

  1. 重复日志
    原因:多次添加 Handler 或 basicConfig 被多次调用。
    解决:确保 Handler 只添加一次,或在 basicConfig 中设置 force=True

  2. 性能优化
    避免在高频代码中记录低级别日志(如 DEBUG),可预先检查级别:

    if logger.isEnabledFor(logging.DEBUG):logger.debug(f'耗时操作: {time_consuming()}')
    

八、总结

logging 模块通过灵活的配置和分级机制,满足了从简单到复杂的日志需求。掌握其核心组件(Logger、Handler、Formatter)和级别控制,能显著提升程序的可维护性。建议在项目中替代 print,合理利用日志进行调试和监控。

http://www.dtcms.com/wzjs/15838.html

相关文章:

  • 怎样建设一个网站教学设计优化网站排名公司
  • 平台门户网站建设广州短视频代运营
  • 哪个网站可以查蛋白互做百度一下官网首页百度
  • 外贸建站主机中文域名注册官网
  • 如何建设自己网站谷歌搜索引擎免费入口
  • 响应式网站开发设计最近新闻热点大事件
  • 营销型网站设计建设公司建设网站流程
  • 深圳市手机网站建设品牌宁波网站建设团队
  • 电脑网站拦截怎么解除深圳搜索引擎优化推广便宜
  • 家谱网站的首页怎么做seo搜索引擎优化试题
  • 高端网站建设需要多少钱百度导航下载2021最新版
  • 建设部网站官网挂证通报优化seo设置
  • asp网站连接access数据库陕西网站制作
  • 新钥匙石家庄网站建设西安关键词排名优化
  • jeecms可以做网站卖吗网页设计与制作代码
  • 网站建设人员工作要求网站营销外包哪家专业
  • 电子商务网站建设的基本步骤整站优化要多少钱
  • 网站专题策划案例优化大师
  • 什么网站可以接装修活此网站三天换一次域名
  • 免费一键自助建站官网产品推广ppt
  • wordpress出现500错误免费智能seo收录工具
  • 给一个公司做网站需要多久市场调研报告怎么写的
  • wordpress多站点分别部署公司网络推广服务
  • 自己怎么做直播网站外贸网站制作公司哪家好
  • 营销型网站维护多少钱百度seo收录
  • 怎样给网站做图标磁力猫引擎入口
  • 慈溪市网站制作白城seo
  • 哪些网站可以做设计方案网站seo课设
  • 湛江门户网站谷歌网页版登录入口
  • 域名申请到网站建设教程网络黄页推广软件哪个好用