当笔记本打印日志输出时,是否可以避免红色背景色?有关示例,请参阅此示例笔记本。
http://nbviewer.ipython.org/gist/bjonen/1bd52a7d8a4761a74074
答案 0 :(得分:9)
红色背景突出显示发送到stderr而不是stdout的输出。为避免这种情况,您可以将日志记录发送到stdout:
ch = logging.StreamHandler(sys.stdout)
答案 1 :(得分:1)
突出显示的答案对我不起作用。 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模式(不是控制台)下运行此程序,请添加检查:if not type(sys.stdout) == io.TextIOWrapper: # Jupyter Mode
。
答案 2 :(得分:0)
这是因为日志记录已记录到stderr
如果安装了Stylus浏览器插件,则可以更改CSS样式以使用其他颜色。
.jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
background: var(--jp-cell-editor-background);
}
这有帮助吗?
答案 3 :(得分:0)
这个片段对我有用。我讨厌红色背景,希望它有另一种颜色。 在这里,我将背景颜色更改为绿色,但您可以将 CSS 设置为任何您想要的:
from IPython.core.display import HTML
HTML("""
<style>
div.output_stderr {
background: #0C0;
}
</style>
""")