我在 Windows 10 上使用 VS Code 1.73.1,并使用 Python logging
模块改造我的程序。我的程序总体运行正常。我做的主要事情是将所有打印语句更改为 logger.debug
并且我知道变量格式需要从 {}
更改为 %s
.我还将 encoding
标志添加到我的文件处理程序中。
还有一些事情:
- 当我从 VS Code 命令行运行它时,它会创建一个包含调试语句的文件,但不会在终端、调试控制台或输出窗口中显示任何输出。
- 当我使用
F5
函数运行它时,它不会创建文件或在任何地方显示任何控制台输出。
print('something')
根据 launch.json
设置在终端或调试控制台中工作和显示,但 logger.debug(' some')
不会在任一控制台中显示。
我的请求/问题:使用logger.debug
,为什么没有任何内容打印到控制台,甚至没有创建文件?
我还尝试在自己单独的 .py
文件中运行下面的代码,但遇到同样的问题:
print
显示到调试控制台,但 logger.debug
不显示。
记录代码块:
import logging
# Create a custom logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# Streaming Handler
c_handler = logging.StreamHandler()
c_handler.setLevel(logging.INFO)
c_format = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)
logger.addHandler(c_handler)
# File Handler
f_handler = logging.FileHandler('download_shelf.log', encoding='utf-8')
f_handler.setLevel(logging.DEBUG)
f_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
f_handler.setFormatter(f_format)
logger.addHandler(f_handler)
logger.debug(f"Log messages:") ### `print` statement displays in either the Terminal
### or Debug Console depending on `launch.json` setting
我确保我的 launch.json
文件已设置在本地 .vscode
文件夹中(请参阅底部代码部分)。但是,我确实必须手动创建此文件,然后重新启动 VS Code。我发现的信息说调试面板中有一个链接,我知道我以前见过。该文件不存在。
我的目录结构:
toplevel/
.vscode/
launch.json
src/
subdirectory/
myfile.py
我的 launch.json
文件包含 "console": "internalConsole"
{
"configurations": [
{"name":"Python: Current File",
"type":"python",
"request":"launch",
"program":"${file}",
// "console":"integratedTerminal",
"console": "internalConsole",
"justMyCode":true
},
]
}
最佳答案
使用不同的记录器示例后,我意识到问题是我使用的第一个示例中的级别设置有“INFO”而不是“DEBUG”,因此没有显示任何内容。哎呀...
import logging
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
console = logging.StreamHandler()
console.setLevel(level=logging.DEBUG)
formatter = logging.Formatter('%(levelname)s : %(message)s')
console.setFormatter(formatter)
logger.addHandler(console)
logger.debug('simple message')
关于python - 使用 python 日志模块在 VS Code 中没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74585126/