在笔记本打印日志输出时,是否可能避免出现红色背景颜色? 例如,请参见此示例笔记本。
http://nbviewer.ipython.org/gist/bjonen/1bd52a7d8a4761a74074
在笔记本打印日志输出时,是否可能避免出现红色背景颜色? 例如,请参见此示例笔记本。
http://nbviewer.ipython.org/gist/bjonen/1bd52a7d8a4761a74074
ch = logging.StreamHandler(sys.stdout)
对我来说,这个突出显示的答案不起作用。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")
这也可以包含在导入到Jupyter Notebook的包中,例如:使用 import my_dev_package
- 并且避免log.Info被显示为红色框。为了仅在Jupyter Mode(而不是控制台)中运行该程序包,请添加以下检查:if not type(sys.stdout)==io.TextIOWrapper: # Jupyter Mode
。
from IPython.core.display import HTML
HTML("""
<style>
div.output_stderr {
background: #0C0;
}
</style>
""")
这是因为日志被记录到了stderr
如果您安装了Stylus浏览器插件,您可以更改CSS样式以使用不同的颜色。
.jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
background: var(--jp-cell-editor-background);
}
这有帮助吗?
logging.basicConfig
设置日志记录,还可以通过stream=sys.stdout
进行传递。 - Mack