python - 在 Python 中使用 `logging` 模块的正确方法
问题描述
我正在尝试将日志添加到我的代码中,而不是打印所有内容。我阅读了许多其他帖子和文章,例如此处列出的那些,但我的代码中的日志没有打印出来。
这是一个例子:
# driver.py
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
def main():
logging.debug('This is a simple log')
# other code here
if __name__ == "__main__":
main()
但我的日志没有打印到stdout
. 我究竟做错了什么?
另外,如果我想向多个文件添加日志记录,我可以在单独的文件中配置日志,例如在我的文件中导入该文件driver.py
,helper_funtions.py
这样我就不必一遍又一遍地重复同样的事情?
解决方案
你需要一个 StreamHandler
ch = logging.StreamHandler()
logger.add_handler(ch)
日志记录手册提供了大量关于设置流处理程序以及记录到文件的示例。您甚至可以将日志的格式配置为 StdOut 看起来与文件的格式不同。
https://docs.python.org/3/howto/logging-cookbook.html#logging-cookbook
推荐阅读
- python - 在 Python 3 中执行当前 Python 脚本
- testing - 尝试验证架构时遇到 java.lang.ClassNotFoundException: com.intuit.karate.demo.util.SchemaUtils
- javascript - 状态更改时反应组件不重新渲染
- jquery - 尝试在最接近的标签之后添加内容,但我认为我错了
- reporting-services - SSRS 数据驱动文件共享帐户 - 模拟错误
- javascript - 从数组中删除所有多次出现的元素
- python-3.x - 从 qt 生成的代码在 pyqt5 中集成 matplotlib 图
- authentication - 使用 Firebase 的 asp.net 核心身份验证
- python - 在这种情况下如何从二维数组中调用元素?
- php - 如何设置 htmlspecialchars php 变量的样式