You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python logging配置INFO级别日志写入文件未生成对应文件问题

问题原因与排查方案

核心触发原因

  • logging.basicConfig 未生效:该配置仅在根日志器没有任何预置处理器时生效。如果调用basicConfig前,你的代码、导入的第三方模块已经执行过任意logging输出操作,或是手动给根日志器添加过处理器,后续的basicConfig配置会直接被忽略,不会触发日志文件创建逻辑。
  • 工作目录不匹配:你使用了相对路径定义日志文件名,日志文件会生成在代码运行时的当前工作目录,而非代码文件本身存储的目录。如果IDE运行配置、命令行执行的启动路径不是代码文件所在目录,日志文件会生成在其他路径,你在代码文件目录下无法找到。
  • 目录写入权限不足:如果运行代码的用户对当前工作目录没有写入权限,大部分场景会抛出IO错误,但在系统级受保护目录(如Windows的Program Files、macOS的/System目录)下会触发系统写入重定向,不会报错也不会在目标路径生成文件。

排查步骤

  1. 确认当前工作目录,在代码开头添加以下代码:
import os
print("当前工作目录:", os.getcwd())

运行后前往输出的路径下查找是否存在目标日志文件。
2. 清理预置的日志处理器,避免已有配置覆盖你的设置,在调用basicConfig前添加以下代码:

import logging
# 清空根日志器已有处理器
for handler in logging.root.handlers[:]:
    logging.root.removeHandler(handler)

修改后重新运行,检查是否生成日志文件。
3. 改用绝对路径测试,直接指定你确认有写入权限的目录作为日志存储路径,例如:

# Windows示例
logging.basicConfig(filename=r'C:\Users\用户名\Desktop\moses_data_extraction.log',
# macOS/Linux示例
# logging.basicConfig(filename='/home/用户名/Desktop/moses_data_extraction.log',
                    filemode='w',
                    format='%(asctime)s - %(message)s',
                    datefmt='%d-%b-%y %H:%M:%S',
                   level=logging.INFO)

如果使用绝对路径可以正常生成文件,说明原问题出在相对路径对应的工作目录权限或路径匹配问题。

内容的提问来源于stack exchange,提问作者JFerro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:39:04