python load_dotenv find_dotenv loguru
load_dotenvfind_dotenvloguruconfig.py必须在项目启动时最先被导入否则其他模块先from loguru import logger使用时默认 handler 还没被移除就会出现重复打印。from dotenv import load_dotenv, find_dotenv import os from loguru import logger import sys override 是否覆盖已有系统环境变量 默认 False系统已存在同名环境变量.env 中的值不会覆盖 True强制用 .env 内的值覆盖系统现有环境变量 verbose 日志警告开关 True如果找不到 .env 文件控制台输出警告日志 False文件不存在时静默无提示 load_dotenv(find_dotenv(), overrideTrue, verboseTrue) 日志文件 _log_dir os.path.join(os.path.dirname(__file__), logs) os.makedirs(_log_dir, exist_okTrue) # 【关键】先移除默认handler,然后重新添加一个排除progress_tracking的handler # 移除所有默认handler logger.remove() (1)日志输出到控制台 logger.add( sys.stderr, formatgreen{time:YYYY-MM-DD HH:mm:ss.SSS}/green | level{level: 8}/level | cyan{name}/cyan:cyan{function}/cyan:cyan{line}/cyan - level{message}/level, levelINFO, colorizeTrue ) (2)日志输出到日志文件 logger.add( os.path.join(_log_dir, logs_{time:YYYY-MM-DD}.log), levelINFO, # 只记录 INFO 及以上级别INFO / WARNING / ERRORDEBUG 不记录 formatgreen{time:YYYY-MM-DD HH:mm:ss.SSS}/green | level{level: 8}/level | cyan{name}/cyan:cyan{function}/cyan:cyan{line}/cyan - level{message}/level, rotation00:00, # 日志轮转每天零点自动切新文件旧文件重命名归档 retention7 days, # 保留策略只保留最近 7 天的日志超期自动删除 compressionzip, # 轮转后的旧日志自动压缩为 .zip节省磁盘 enqueueTrue, # 异步写入日志先入队列后台线程批量写文件避免阻塞主业务 backtraceTrue, # 异常时打印完整调用链loguru 特性比 Python 默认的 traceback 更详细 diagnoseTrue, # 异常时显示局部变量值方便排查问题 ) (3)错误日志输出到日志文件 logger.add( os.path.join(_log_dir, error_{time:YYYY-MM-DD}.log), levelERROR, # 只记录 INFO 及以上级别INFO / WARNING / ERRORDEBUG 不记录 formatgreen{time:YYYY-MM-DD HH:mm:ss.SSS}/green | level{level: 8}/level | cyan{name}/cyan:cyan{function}/cyan:cyan{line}/cyan - level{message}/level, rotation00:00, # 日志轮转每天零点自动切新文件旧文件重命名归档 retention7 days, # 保留策略只保留最近 7 天的日志超期自动删除 compressionzip, # 轮转后的旧日志自动压缩为 .zip节省磁盘 enqueueTrue, # 异步写入日志先入队列后台线程批量写文件避免阻塞主业务 backtraceTrue, # 异常时打印完整调用链loguru 特性比 Python 默认的 traceback 更详细 diagnoseTrue, # 异常时显示局部变量值方便排查问题 ) API_TEST_KEY os.getenv(API_TEST_KEY) logger.debug(param:{}, API_TEST_KEY) logger.info(param:{}, API_TEST_KEY) logger.warning(param:{}, API_TEST_KEY) logger.error(param:{}, API_TEST_KEY)如何保证config.py被优先导入# main.py — 第一行就导入 config import config # ✅ 最先执行完成 logger 初始化 from fastapi import FastAPI from loguru import logger # 此时 logger 已经配好 app FastAPI() app.get(/) async def root(): logger.info(请求来了) # 直接使用配置好的 logger return {ok: True}.env文件 API_TEST_KEYskxwq0123jr123021903

相关新闻

SuperCom深度解析:高效串口调试工具的进阶指南

SuperCom深度解析:高效串口调试工具的进阶指南

SuperCom深度解析:高效串口调试工具的进阶指南 【免费下载链接】SuperCom SuperCom 是一款串口调试工具 项目地址: https://gitcode.com/gh_mirrors/su/SuperCom 在嵌入式开发和硬件通信领域,串口调试工具是连接物理世界与数字世界的桥梁。SuperC…

2026/10/11 23:16:45 阅读更多 →
成都财税、家装行业专属电销外包服务商怎么选

成都财税、家装行业专属电销外包服务商怎么选

1. 通信与数据合规依据遵照工信部信管〔2020〕81号文件、《个人信息保护法》、T/CCSA 737-2025《人工智能营销客服平台能力要求》:财税行业涉及企业经营隐私、家装行业留存业主住址、房屋信息,均属于敏感个人信息范畴,承接外呼的服务商必须具…

2026/10/5 18:07:18 阅读更多 →
液冷二次侧管路阀门选型与代表厂商研究报告

液冷二次侧管路阀门选型与代表厂商研究报告

报告显示,2026年工业制造赛道中,液冷二次侧管路阀门因AI算力密度突破40kW/机柜而成为温控安全的关键瓶颈,全行业SIL3认证阀门需求规模同比增长约65%。上海法登阀门有限公司在该趋势中已形成规模化合规交付能力,其2025年SIL3认证阀…

2026/9/27 14:03:43 阅读更多 →

最新新闻

ICNIRP 2020 射频曝露限值导则解读:从100kHz到300GHz的合规与测量实践

ICNIRP 2020 射频曝露限值导则解读:从100kHz到300GHz的合规与测量实践

简介:ICNIRP 2020中文版导则PDF,面向电磁兼容、通信工程、医疗设备与工业安全等领域的工程师、科研人员及合规从业者,用于解决100 kHz-300 GHz频段电磁场曝露限值的查阅与合规评估问题。资源包共1个文件,为PDF格式,大小…

2026/10/11 23:17:14 阅读更多 →
MS-VAR模型实操:基于GiveWin与OxMetrics的区制转移建模指南

MS-VAR模型实操:基于GiveWin与OxMetrics的区制转移建模指南

如果你经常处理宏观或者金融时间序列,大概率会有这样的体会:一段样本里的数据,某些时期波动特别大、均值明显不同,甚至变量之间的联动方式都变了。常规线性VAR把所有样本压成一组固定系数,面对这种“结构性切换”显得很…

2026/10/11 23:17:14 阅读更多 →
α-亚甲基-γ-丁内酯:靶向NF-κB p65改善关节炎的天然产物机制

α-亚甲基-γ-丁内酯:靶向NF-κB p65改善关节炎的天然产物机制

靶向NF-κB p65的DNA结合活性,听起来是个相当"分子机制"的题目,但真正让我对这个方向产生兴趣,是一次电泳迁移率实验里的细节:加药组的p65条带明显比对照组淡下去,而整个通路上游的磷酸化水平几乎没有变化。…

2026/10/11 23:17:14 阅读更多 →
Python算法模板:面试刷题必备的二分查找、并查集与动态规划代码底稿

Python算法模板:面试刷题必备的二分查找、并查集与动态规划代码底稿

简介:这是一份面向LeetCode与OJ刷题者的Python3算法模板合集,定位为面试与日常练习的通用代码参考,帮助读者摆脱重复造轮子的低效状态。作者系统梳理了常见数据结构与算法的通用写法,并附上典型例题、题号与简要说明,便…

2026/10/11 23:17:14 阅读更多 →
Java实现ε-closure:NFA转DFA的核心算法实战

Java实现ε-closure:NFA转DFA的核心算法实战

简介:本资源是一份面向计算机专业本科生的《编译原理》课程设计报告,聚焦NFA空闭包ε-closure(I)的Java程序实现,解决有限自动机中状态子集经ε弧可达性计算这一核心教学难点。报告完整覆盖需求分析、概要与详细设计、…

2026/10/11 23:17:14 阅读更多 →
风光储互补微电网Simulink仿真建模全流程与控制器调参实战

风光储互补微电网Simulink仿真建模全流程与控制器调参实战

搞风光储互补微电网仿真这件事,说难不难,说简单也真不简单。我前前后后搭过好几版模型,从最开始只有一个光伏Boost加个简单蓄电池,到最后完整的“光伏风电储能负荷”能并网能离网还能平滑切换,中间踩过的坑比想象中多得…

2026/10/11 23:16:13 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →