【发布时间】:2014-08-18 10:03:21
【问题描述】:
笔记本打印日志输出时是否可以避免红色背景色?有关示例,请参阅此示例笔记本。
http://nbviewer.ipython.org/gist/bjonen/1bd52a7d8a4761a74074
【问题讨论】:
标签: logging ipython ipython-notebook
笔记本打印日志输出时是否可以避免红色背景色?有关示例,请参阅此示例笔记本。
http://nbviewer.ipython.org/gist/bjonen/1bd52a7d8a4761a74074
【问题讨论】:
标签: logging ipython ipython-notebook
红色背景突出显示发送到标准错误的输出,而不是标准输出。为避免这种情况,您可以将日志记录发送到标准输出:
ch = logging.StreamHandler(sys.stdout)
【讨论】:
log.handlers[0].stream = sys.stdout 对我有用,同时保留默认 StreamHandler 的格式
logging.basicConfig设置日志,你也可以通过stream=sys.stdout。
Fore.Red 调整为 Back.Red 和类似的其他日志颜色。
突出显示的答案对我不起作用。 Jupyter Notebook 似乎在任何导入完成之前设置了记录器。要将任何标准错误重定向到标准输出,我必须首先重新加载日志记录模块:
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。
【讨论】:
这个 sn-p 对我有用。我讨厌红色背景,希望它有另一种颜色。 这里我将背景颜色更改为绿色,但是您可以将 CSS 设置为任何您想要的:
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);
}
这有用吗?
【讨论】: