2017-07-18 76 views
0

我已启用日志记录到python代码。python日志记录配置和访问所有方法

logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s : %(message)s') 


logging.info('Log this message') 

但是我不能使用任何其他日志记录方法。其他方法不打印任何东西。

logging.debug('This is to debug only') 

这是和level=logging.INFO有关吗?我应该设置哪个级别,以便可以使用所有日志记录方法?

感谢您的帮助。

+0

你确定你的'logging.error'不打印任何东西吗? – zwer

+0

@zwer logging.debug不会打印任何东西。 – seoppc

+0

这是因为你在logging.basicConfig()调用中的日志记录级别设置为logging.INFO,所以将它切换到logging.DEBUG以使用较低级别的日志记录。 – zwer

回答

0

整个logging.DEBUG的关键点在于,您或您使用的任何代码都可以记录调试消息 - 如果您不希望调试消息将您的级别设置为更高的级别。

如果你仍然想打印调试消息,但想从一些正在使用的模块抑制信息,如requestsurllib3,设置其记录器的东西比logging.DEBUG级别越高,如:

logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s : %(message)s') 
logging.getLogger("requests").setLevel(logging.WARNING) 
logging.getLogger("urllib3").setLevel(logging.WARNING) 
+0

谢谢很多@zwer – seoppc

0

您应该使用level=logging.DEBUG来记录所有内容。

logging.error诊断问题时才应该打印错误消息,即使有level=logging.INFO

+0

loggin.error工作但不是'logging.debug'。如果我在'logging.DEBUG'设置了级别,它会打印所有内容的调试版本。 – seoppc

+0

设置'logging.debug'启用'request'和'urllib3'的调试 – seoppc

0

DEBUG的详细信息,一般的兴趣。

信息确认事情按预期工作。

警告表示某种意外事件发生或在不久的将来表示某些问题(例如“磁盘空间不足”)。 该软件仍按预期工作。

错误由于更严重的问题,软件无法执行某些功能。

CRITICAL一个严重的错误,表明程序本身可能无法继续运行。

默认级别是WARNING,这意味着只有该级别的 级别的事件才会被跟踪,除非日志包被配置为 否则。

当你设置你的水平,以信息,你必须得到infowarningerrorcritical日志

如果你想记录所有级别的设定水平logging.DEBUG

+0

设置'logging.debug'启用'request'和'urllib3'的调试 – seoppc

+0

@seoppc但是在这个问题中没有提到 –

0

Python记录模块有配置的多级

  • DEBUG
  • 信息
  • 警告
  • ERROR
  • 关键

将显示在这个日志是取决于你选择什么样的水平上面显示的排序顺序。它会显示选定的舞台以及其他任何阶段“在选定舞台上方”。

例如,如果您选择INFO,日志将显示除DEBUG以外的所有INFO/WARNING/ERROR日志。

这有助于您可以根据当前所处的环境,通过环境变量对它们进行排序,例如当您处于开发模式时可以将其设置为DEBUG,然后在您处于开发模式时将其设置为WARNING在生产模式下。

您可以在下面

Python Logging Module

终于在链接阅读更多关于它,给一个具体的回答你的问题。您应该将其设置为DEBUG以查看所有日志。

希望这可以让你更好地了解python日志记录模块的用途!

干杯! 最大