如何启用和访问笔记本和 IPython 内核的调试日志记录

问题描述 投票:0回答:3

我正在对 IPython 内核进行一项小型研究,并尝试从中获取调试日志并了解它如何与笔记本交互。现在看起来我的发行版中附带的文档和示例配置已经完全过时了。

问题

  1. ipython 内核日志文件位于哪里?
  2. 如何在 jupyter Notebook 和 ipython 内核中启用调试级别日志记录?

我尝试过的事情

请先阅读本节,然后再提供官方文档的链接

首先,我使用以下命令为 IPython 和笔记本创建了配置文件:

$ ipython profile create
$ jupyter notebook --generate-config

正如预期创建了三个文件:

  • .jupyter/jupyter_notebook_config.py
  • .ipython/profile_default/ipython_config.py
  • .ipython/profile_default/ipython_kernel_config.py

在这些文件中我发现了类似的评论片段:

 # Set the log level by value or name.
 # c.Application.log_level = 0

我尝试在 jupyter 配置中取消注释它。它没有添加更多细节,而是完全禁用了

jupyter
进程的控制台输出。我也尝试了值
50
它有相同的结果,值
DEBUG
在启动时给了我Python错误。

我还在 ipython 的配置中使用了这些值,但我无法找到日志文件位置。

在邮件列表命令行选项中提到了

--log-level=DEBUG
,它确实适用于 jupyter。但我真的想在配置文件中保留此设置,并且也有内核的调试信息。

配置选项

NotebookApp.log_level
IPKernelApp.log_level
也没有任何改变。

jupyter-notebook jupyter
3个回答
20
投票

我相信这种功能仍然在愿望清单上:

https://github.com/ipython/ipython/issues/8570

但是你可以尝试这样的事情:

jupyter notebook --debug > log.file 2>&1

ipykernel kernel --debug > log.file 2>&1

3
投票

您还可以尝试使用选项 --debug 在不附加前端的情况下启动 ipython 内核:

ipython kernel --debug

通过在

c.Session.debug = True
中设置
jupyter_notebook_config.py
,您可以获得有关内核和前端之间交互的大量信息。


0
投票

这是我推荐的步骤

  1. 找到您内核使用的 python bin/exe。您应该能够在内核文件中找到它,或者可以从 jupyter 笔记本日志中看到它。例如,从下面的日志中,您可以看到它是 /opt/anaconda3/envs/ray_python39/bin/python

    [D 09:12:21.717 NotebookApp] 启动内核:['/opt/anaconda3/envs/ray_python39/bin/python', '-m', 'ipykernel_launcher', '-f', 'Library/Jupyter/runtime/内核-c106812b-d169-43bd-b305-159235683941.json']

  2. 使用步骤 1 中找到的路径运行 python 执行。然后运行你的代码,它会告诉你内核失败的确切原因。

© www.soinside.com 2019 - 2024. All rights reserved.