python配置日志记录


配置Python日志需先调用basicConfig设置级别、格式和输出位置,或创建Logger实例并添加Handler与Formatter以实现多目标输出;对于长期运行服务,应使用RotatingFileHandler或TimedRotatingFileHandler实现按大小或时间轮转日志文件。

python配置日志记录

H3 配置Python日志记录的基本方法

在Python中,logging 模块是内置的日志管理工具,使用它能有效记录程序运行过程中的信息。合理配置日志有助于调试和监控系统行为。

H3 使用 basicConfig 进行简单配置

最基础的配置方式是调用 logging.basicConfig(),可以在程序启动时一次性设置日志格式、输出位置和级别。

示例:

import logging
<p>logging.basicConfig(
level=logging.INFO,                    # 设置最低记录级别
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
filename='app.log',                   # 日志写入文件
filemode='a'                          # 追加模式
)</p><h1>使用日志</h1><p>logging.info("程序启动")
logging.warning("这是一个警告")
logging.error("发生错误")</p>

说明:

  • level:控制哪些级别的日志会被记录(DEBUG
  • format:定义日志输出格式,常用字段包括时间、日志器名、级别、消息内容
  • filename:指定日志文件路径,不设置则默认输出到控制台
  • filemode:'a' 表示追加,'w' 表示每次覆盖

H3 使用 Logger 对象实现更灵活控制

对于复杂项目,推荐创建独立的 Logger 实例,并添加 Handler 和 Formatter。

import logging
<h1>获取一个独立的日志器</h1><p>logger = logging.getLogger('my_app')
logger.setLevel(logging.DEBUG)</p><h1>避免重复输出(防止向上级传递)</h1><p>logger.propagate = False</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/xiazai/js/4786">
                            <img src="https://img.php.cn/upload/jscode/000/120/096/5db7d8f2e6055653.jpg" alt="数据源可配置的记事日历插件">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/xiazai/js/4786">数据源可配置的记事日历插件</a>
                            <p>数据源可配置的记事日历插件</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="数据源可配置的记事日历插件">
                                <span>52</span>
                            </div>
                        </div>
                        <a href="/xiazai/js/4786" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="数据源可配置的记事日历插件">
                        </a>
                    </div>
                <h1>创建处理器:同时输出到文件和控制台</h1><p>fh = logging.FileHandler('debug.log')
ch = logging.StreamHandler()</p><h1>设置级别</h1><p>fh.setLevel(logging.DEBUG)
ch.setLevel(logging.INFO)</p><h1>定义格式</h1><p>formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(funcName)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)</p><h1>添加处理器</h1><p>logger.addHandler(fh)
logger.addHandler(ch)</p><h1>使用</h1><p>logger.debug("详细调试信息")
logger.info("普通提示")
logger.error("出错了!")</p>

这种方式的优点:

  • 可为不同模块分配不同的日志器
  • 支持多个输出目标(文件、控制台、网络等)
  • 每个输出可以有不同的格式和级别控制

H3 日志轮转(按大小或时间切割)

长时间运行的服务会产生大量日志,建议使用 RotatingFileHandlerTimedRotatingFileHandler 自动分割日志文件。

from logging.handlers import RotatingFileHandler
import os
<h1>按文件大小轮转</h1><p>handler = RotatingFileHandler(
'app.log',
maxBytes=10<em>1024</em>1024,   # 10MB
backupCount=5            # 保留5个备份
)</p>

from logging.handlers import TimedRotatingFileHandler
import time
<h1>按时间轮转(每天一个文件)</h1><p>handler = TimedRotatingFileHandler(
'app.log',
when='midnight',
interval=1,
backupCount=7,
encoding='utf-8'
)</p><h1>文件名自动加上日期后缀</h1><p>handler.suffix = "%Y-%m-%d"</p>

基本上就这些。根据项目规模选择合适的配置方式,小项目用 basicConfig 就够了,大项目建议使用自定义 Logger + 多处理器的方式,便于维护和排查问题。

以上就是python配置日志记录的详细内容,更多请关注其它相关文章!


# python  # 邛崃互联网营销及推广  # 嵩县网站优化定制哪家好  # 网站推广一年要多少钱  # 房产网站建设分析报告  # 湖北seo助手有哪些  # 景区门户网站建设方案  # 解决问题  # 自定义  # 中文网  # 错了  # 相关文章  # 这是一个  # 长时间  # 多个  # 有哪些  # 键值  # asic  # gate  # stream  # 工具  # app  # 处理器  # 日志记录  # 团购网站优化方法分析  # google建站和seo优化  # 港珠澳大桥网站建设  # 怎么建设企业网站引流 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: Windows 11怎么删除恢复分区_Windows 11使用Diskpart命令强行删除分区  《via浏览器》强制缩放网页设置方法  苹果官网国补入口在哪  快手网页版官方访问 快手网页版页面在线打开  研招网官方网站正版登录网址_中国研究生招生信息网官网首页  电子白板帮助菜单使用指南  QQ网站入口直接登录 QQ官方正版登录页面  Linux如何自动分析系统异常日志_Linux日志智能检测  智慧职教mooc平台登录网址 智慧职教mooc官网直达  我居然低估了 DeepSeek,这次更新它做到了这些!  如何在CSS中使用absolute实现登录弹窗居中_transform translate结合  《下一站江湖2》独孤剑诀习得方法  嘴唇干裂起皮怎么办 唇部护理与预防干裂的方法【详解】  mysql导入sql文件能分批导入吗_mysql分批次导入大sql文件的实用技巧  Python测试中模块导入路径解析的最佳实践  Python项目中的条件导入:解决跨模块依赖问题  背部总是隐隐作痛怎么回事 背痛如何改善  《雷电模拟器》截图方法介绍  C++怎么实现一个红黑树_C++高级数据结构与平衡二叉搜索树  汽水音乐车机版 汽水音乐车机版官方入口  中通快递官网指定查询 中通快递单号查询平台入口  LocoySpider如何批量采集电商商品_LocoySpider电商采集的模板应用  mysql怎么查询数据_mysql基础查询语句使用教程  鲨鱼剧场app金币获取方法  《腾讯相册管家》注销账号方法  掌握CSS :has() 选择器:父选择器、嵌套限制与常见陷阱解析  《鹿路通》退余额方法  解决CSS background 属性中 cover 关键字的常见误用  AO3永久镜像入口开放_AO3最新网址兼容所有浏览器  4399小游戏下装链接 4399小游戏下载链接入口  Flexbox布局实践:实现底部页脚与顶部粘性导航条的完美结合  蜻蜓FM如何设置移动流量播放  @Team是什么?揭秘团队含义  苹果11如何更换iCloud账号_苹果11账号切换的具体步骤  c++如何使用std::thread::join和detach_c++线程生命周期管理  《飞猪旅行》购买汽车票方法  汽水音乐在线入口 汽水音乐网页端官方页面快速打开  vivo手机视频通话美颜怎么设置_vivo视频通话美颜开启方法  使用Python和NLTK从文本中高效提取名词的实用教程  qq邮箱怎么注册_QQ邮箱注册步骤与注意事项  从HTML表单获取逗号分隔值并转换为NumPy数组进行预测  易车网官网直达入口 易车网在线登录入口  厨房地面防滑垫的油污怎么洗? 机洗和手洗防滑垫的注意事项  获取WooCommerce产品在后台编辑页面的分类ID  J*aScript深度克隆:实现高效、健壮与安全的复杂对象复制  百度小说看书时如何翻页_百度小说手动翻页与自动翻页设置  智云Q3和Q2有什么升级_智云Q3与Q2手持云台功能与性能对比分析  解决SQLAlchemy模型跨文件关联的Linter兼容性指南  如何在Python中安全地将环境变量转换为整数并满足Mypy类型检查  163邮箱登录入口官网 163.com邮箱登录入口 

 2025-11-21

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.