新闻中心

python日志记录器的配置

2025-11-25
浏览次数:
返回列表
日志配置需设置级别、格式和输出目标,推荐使用字典配置管理。1. 设置日志级别为DEBUG或INFO以控制输出;2. 自定义格式包含时间、级别、模块名等;3. 输出到文件和控制台;4. 创建独立logger实例避免全局调用;5. 使用dictConfig集中管理复杂配置,防止重复handler和错误传播。

python日志记录器的配置

Python 日志记录器(logging)的配置是项目开发中非常关键的一环,它帮助开发者追踪程序运行状态、排查错误和监控系统行为。合理的配置能让日志输出清晰、结构化,并便于后期分析。

基本的日志级别设置

Python 的 logging 模块提供了五个标准日志级别,按严重性递增:

  • DEBUG:详细信息,通常只在调试时使用
  • INFO:确认程序按预期运行
  • WARNING:表示某些意外发生,但程序仍在工作
  • ERROR:由于问题导致部分功能失败
  • CRITICAL:严重错误,可能导致程序无法继续运行

默认的日志级别是 WARNING,低于该级别的日志不会被记录。可以通过以下方式设置:

import logging
<p>logging.basicConfig(level=logging.INFO)
logging.info("这是一条 info 级别的日志")</p>

配置输出格式和目标

你可以自定义日志的输出格式,包括时间、日志级别、模块名、消息内容等。同时可以指定输出到控制台或文件。

import logging
<p>logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler("app.log"),
logging.StreamHandler()  # 输出到控制台
]
)</p>

上面的配置会将日志同时写入 app.log 文件并打印到终端。format 中常用字段:

闪睿企业网站管理系统一键安装部署版2.0 闪睿企业网站管理系统一键安装部署版2.0

此版本和闪睿企业网站管理系统 2009 SP1 Build 090828 得区别是:这个可以在本地计算机一键安装所有所需组件,并安装完成后自动打开闪睿网站前台。我们的口号:简单,不思考!这个版本要的就是简单!不再需要安装IIS,配置IIS,繁琐的各种设置,下载等,就下载一个包,运行一个程序,一步到位!2.0版本更新日志:1.自主研发迷你web服务器,全自动配置参数。简单无极限!2.迷你服务器和迷你

闪睿企业网站管理系统一键安装部署版2.0 0 查看详情 闪睿企业网站管理系统一键安装部署版2.0
  • %(asctime)s:可读的时间戳
  • %(name)s:记录器名称
  • %(levelname)s:日志级别名称
  • %(message)s:日志内容
  • %(funcName)s:函数名
  • %(lineno)d:行号

使用 logger 实例管理不同模块

建议不要直接使用 logging.debug() 等全局方法,而是创建独立的 logger 实例,便于模块化管理。

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
<h1>防止重复添加 handler</h1><p>if not logger.handlers:
handler = logging.StreamHandler()
formatter = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)</p><p>logger.info("来自 %s 模块的信息", <strong>name</strong>)</p>

通过字典配置实现灵活管理

对于复杂项目,推荐使用字典方式集中配置日志,提升可维护性。

import logging.config
<p>LOGGING_CONFIG = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'detailed': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'INFO',
'formatter': 'simple',
'stream': 'ext://sys.stdout'
},
'file': {
'class': 'logging.FileHandler',
'level': 'DEBUG',
'formatter': 'detailed',
'filename': 'debug.log',
'mode': 'a'
}
},
'loggers': {
'myapp': {
'level': 'DEBUG',
'handlers': ['console', 'file'],
'propagate': False
}
},
'root': {
'level': 'WARNING',
'handlers': ['file']
}
}</p><p>logging.config.dictConfig(LOGGING_CONFIG)
logger = logging.getLogger('myapp')
logger.debug("这是从 myapp 记录器输出的调试信息")</p>

基本上就这些。合理配置 logging 能极大提升程序可观测性,关键是根据实际需求选择合适的级别、格式和输出方式。不复杂但容易忽略细节,比如避免重复 handler 或正确设置 propagate。

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


# 行号  # 广州网站建设+推广公司  # 贺州网络推广营销趋势  # 链游推广网站有哪些软件  # 青海优化网站建设方案  # 广元营销推广哪家专业  # 关键词排名系统互联网  # 宁国网站建设价格  # 安阳公司网站推广  # 网站没备案可以先推广吗  # 广州白云seo推广  # 命令行  # 转换为  # python  # 自定义  # 推荐使用  # 这是  # 一键  # 企业网站  # 管理系统  # 记录器  # asic  # gate  # stream  # ai  # app 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: CSS布局中意外空白:解决padding-top导致的顶部间距问题  c++中的std::basic_string的SSO优化_c++短字符串优化深度解析  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  excel怎么制作工资条 excel快速生成工资条的方法  J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程  台积电1.4nm工艺A14瞄准2028:10年来性能提升80%  夸克浏览器网页版最新地址 夸克浏览器官方入口合集  J*aScript中针对特定容器内图片动画的实现教程  LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别  C++如何实现一个智能指针_手动实现C++ shared_ptr的引用计数功能  win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】  Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性  提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案  腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程  iCloud登录入口网页版 苹果iCloud官网登录  Golang如何优化内存分配与垃圾回收_Golang内存管理与GC优化实践  抖音网页版企业服务中心登录入口_抖音网页版企业登录平台  yy漫画网页版官方入口_yy漫画官网登录页面链接  PHP中高效并行检查多链接状态的教程  三星GalaxyZFold5怎样在相册制作折叠屏分镜_iPhone三星GalaxyZFold5相册制作折叠屏分镜【创意编辑】  如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构  漫蛙2正版漫画站 漫蛙2网页版快速访问入口  微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法  魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】  俄罗斯搜索引擎Yandex指南 附2025年免登录官网入口  随机参数递归函数的基准调用次数与时间复杂度探究  CSS Box Model与弹性按钮:维持布局稳定的动画实践  C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器  word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接  Basecamp怎样用留言钉固定重点_Basecamp用留言钉固定重点【重点标记】  电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  狙击外星人小游戏开始_狙击外星人小游戏立即开始  ACG动漫视频网入口 ACG动漫*免费正版观看地址  Python类型检查:优化关联可选属性的Mypy推断策略  俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问  基于动态规划的房屋花卉种植最小成本算法详解  css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  天眼查企业查询官网入口 天眼查官方网页版查询  C#中解析不规范的HTML为XML 常见的坑与解决办法  vivo云服务网页版登录 怎么登录vivo云服务网页版  Angular中单选按钮的正确使用与常见陷阱解析  Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录  快手官方唯一登录入口 谨防山寨钓鱼网站  J*aScript中赋值与自增运算符的复杂交互与执行机制  J*a编写用户注册与登录功能_掌握字符串与验证逻辑  探索高级语言到C/C++的转译路径:以Go为例及内存管理策略 

搜索