bjo*_*nen 11 logging ipython ipython-notebook
当笔记本打印日志输出时,是否可以避免红色背景颜色?有关示例,请参阅此示例笔记本.
http://nbviewer.ipython.org/gist/bjonen/1bd52a7d8a4761a74074
红色背景突出显示发送到stderr的输出而不是stdout.要避免它,您可以将您的日志记录发送到stdout:
ch = logging.StreamHandler(sys.stdout)
Run Code Online (Sandbox Code Playgroud)
突出显示的答案对我不起作用。Jupyter Notebook 似乎在完成任何导入之前设置记录器。要将任何 stderr 重定向到 stdout,我必须首先重新加载日志记录模块:
import sys
import logging
from importlib import reload
reload(logging)
logging.basicConfig(stream=sys.stdout, format='',
level=logging.INFO, datefmt=None)
log = logging.getLogger(__name__)
log.info("This should print as normal output in Jupyter, and not in a red box")
Run Code Online (Sandbox Code Playgroud)
这也可以包含在导入到 Jupyter Notebook 的包中,例如使用import my_dev_package- 并防止 log.Info 显示为红色框。要仅在包的 Jupyter 模式(而不是控制台)下运行此程序,请添加检查:if not type(sys.stdout) == io.TextIOWrapper: # Jupyter Mode。
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |