【问题标题】:How to output logging.info and logging.debug to console?如何将 logging.info 和 logging.debug 输出到控制台?
【发布时间】:2013-11-22 17:34:45
【问题描述】:

我只能看到警告和错误,我怎样才能得到信息和调试打印出来?澄清一下,我用python app.py 启动龙卷风应用程序。我希望在运行应用程序后将信息和调试日志打印到控制台。

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('hello fun fun test world from tornado super')
        logging.info('info')
        logging.warning('warning')
        logging.error('error')
        logging.debug('debug')


application = tornado.web.Application([(r"/", MainHandler)], debug=True)

【问题讨论】:

  • 您将logger.setLevel() 设置为什么?您可能需要将其设置为 logging.DEBUG
  • 谢谢,这正是我需要做的!
  • 我更新了答案,使其更全面。

标签: python tornado


【解决方案1】:

您可能需要更改日志记录模块的级别以允许在控制台中显示调试和信息消息。

logger.setLevel(logging.DEBUG) # this should allow all messages to be displayed

如果您不想显示调试消息,请执行以下操作:

logger.setLevel(logging.INFO)

只是一个简短的仅供参考。这是按顺序排列的级别,因此如果您设置其中一个,它将显示低于设置级别的任何类型的消息,并且不会显示高于设置级别的任何消息。

logging.DEBUG
logging.INFO
logging.WARNING
logging.ERROR
logging.CRITICAL

【讨论】:

  • 什么是logger?它来自哪里?
  • logger = logging.getLogger(__name__),如果您在每个模块基础上设置日志记录
【解决方案2】:

通过调用 tornado.options.parse_command_line,您可以注册 tornado 命令行标志。

您可以使用logging 命令行标志从命令行更改日志记录级别。

欲了解更多信息:https://stackoverflow.com/a/14269208/63097

【讨论】:

    【解决方案3】:
    python helloworld.py --logging=debug
    

    【讨论】:

    • 这是一个很好的答案,因为提问者最初显示他们正在使用 Tornado,但是读者要注意 Python 运行时似乎不支持这一点,并且可能特定于 Tornado。
    • 喜欢 options.py
    【解决方案4】:

    诀窍是:可以直接修改tornados内部访问记录器:

    import logging
    import tornado
    import tornado.log
    
    tornado.log.access_log.setLevel(logging.DEBUG)
    

    【讨论】:

      猜你喜欢
      • 2021-06-05
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 2018-08-18
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多