VSCode中Python代码Run无日志输出,Run and Debug正常求助
Python日志写入问题:仅Run and Debug模式生效排查方案
问题背景
此前Python代码通过VSCode的Run选项可将日志写入validation.log,但近期该功能失效,仅Run and Debug模式能正常生成日志。使用Python标准库logging.basicConfig配置日志,相关代码如下:
日志配置代码
import logging import requests logging.basicConfig(filename='validation.log', filemode='a', level=logging.ERROR, format='%(asctime)s: %(message)s',datefmt='%H,%M,%S')
日志调用语句
logging.error(f"Server: {server} - Success! end point is accessible. Response Code: {response_getwave.status_code}\n")
排查与解决步骤
- 检查工作目录差异
VSCode的Run和Run and Debug可能使用不同工作目录,导致日志文件生成在非预期位置。添加代码打印当前工作目录验证:
import os print("当前工作目录:", os.getcwd())
若目录不一致,可通过两种方式解决:
- 调整VSCode设置:将
python.terminal.executeInFileDir设为true,让Run选项在脚本所在目录执行; - 在
logging.basicConfig中使用绝对路径指定日志文件位置,避免目录歧义。
- 确保日志初始化优先级
如果在调用logging.basicConfig前已有其他模块(如requests)初始化了日志,会导致basicConfig配置不生效。调整代码顺序,先配置日志再导入其他库:
import logging logging.basicConfig(filename='validation.log', filemode='a', level=logging.ERROR, format='%(asctime)s: %(message)s',datefmt='%H,%M,%S') import requests
排查文件权限问题
Run选项使用的权限可能无法写入目标目录。手动在Run模式的工作目录下创建validation.log并赋予读写权限,再测试日志写入。验证日志级别配置
临时将日志级别改为logging.DEBUG,确认logging.error调用是否能触发日志输出,排除级别配置错误的可能。
内容的提问来源于stack exchange,提问作者Avinash Mvrick
相关产品推荐
相关产品推荐

