【问题标题】:Avoid red background color for logging output in Ipython Notebook在 Ipython Notebook 中记录输出时避免使用红色背景色
【发布时间】:2014-08-18 10:03:21
【问题描述】:

笔记本打印日志输出时是否可以避免红色背景色?有关示例,请参阅此示例笔记本。

http://nbviewer.ipython.org/gist/bjonen/1bd52a7d8a4761a74074

【问题讨论】:

    标签: logging ipython ipython-notebook


    【解决方案1】:

    红色背景突出显示发送到标准错误的输出,而不是标准输出。为避免这种情况,您可以将日志记录发送到标准输出:

    ch = logging.StreamHandler(sys.stdout)
    

    【讨论】:

    • 要让答案正常工作,您必须将自动安装的 log.handler 替换为新的处理程序。相反,做log.handlers[0].stream = sys.stdout 对我有用,同时保留默认 StreamHandler 的格式
    • 如果你用logging.basicConfig设置日志,你也可以通过stream=sys.stdout
    • 如果您和我一样希望所有级别低于 ERROR 的日志消息 没有红色背景,并且 ERROR 和 CRITICAL 日志消息应该仍然有红色背景,那么您可能还会发现这很有用:gist.github.com/joshbode/58fac7ababc700f51e2a9ecdebe563ad。您可能希望将 Fore.Red 调整为 Back.Red 和类似的其他日志颜色。
    • 或者您可以尝试创建一个记录器,将 ERROR 和 CRITICAL 日志定向到 stderr 并将所有其他日志定向到 stdout...
    • 有没有办法把红色换成不同的颜色?
    【解决方案2】:

    突出显示的答案对我不起作用。 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

    【讨论】:

      【解决方案3】:

      这个 sn-p 对我有用。我讨厌红色背景,希望它有另一种颜色。 这里我将背景颜色更改为绿色,但是您可以将 CSS 设置为任何您想要的:

      from IPython.core.display import HTML
      HTML("""
      <style>
      div.output_stderr {
          background: #0C0;
      }
      </style>
      """)
      

      【讨论】:

        【解决方案4】:

        那是因为日志记录到stderr

        如果您安装了 Stylus 浏览器插件,您可以更改 CSS 样式以使用不同的颜色。

        .jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
            background: var(--jp-cell-editor-background);
        }
        

        这有用吗?

        【讨论】:

          猜你喜欢
          • 2013-12-23
          • 1970-01-01
          • 1970-01-01
          • 2015-03-18
          • 2013-02-26
          • 1970-01-01
          • 2021-09-09
          • 2021-02-23
          • 1970-01-01
          相关资源
          最近更新 更多