gpt4 book ai didi

python - 使用 python 日志模块在 VS Code 中没有输出

转载 作者:行者123 更新时间:2023-12-03 08:00:11 25 4
gpt4 key购买 nike

我在 Windows 10 上使用 VS Code 1.73.1,并使用 Python logging 模块改造我的程序。我的程序总体运行正常。我做的主要事情是将所有打印语句更改为 logger.debug 并且我知道变量格式需要从 {} 更改为 %s.我还将 encoding 标志添加到我的文件处理程序中。

还有一些事情:

  1. 当我从 VS Code 命令行运行它时,它会创建一个包含调试语句的文件,但不会在终端、调试控制台或输出窗口中显示任何输出。
  2. 当我使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com