我有以下记录器(Python 2.7):

logger = logging.getLogger('solution')
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = ....
ch.setFormatter(formatter)
logger.addHandler(ch)


记录器可以设置为Debug / Info等...

稍后在我的代码中,我确实从API获得了请求。
我可以连接到测试API或生产API。

#test
#url = 'http://...test....com/connect/'
#production
url = 'http://.......com/connect/'


有没有一种方法可以使用记录器级别,以便脚本自己知道应该选择测试url还是生产url?如您所见,其中之一在评论中,我每次都必须手动对其进行更改。

就像是:

If logger.level = 'DEBUG':
    url = 'http://...test....com/connect/
else
   url = 'http://.......com/connect/'


我知道我可以设置一个全局变量来解决这个问题,但是我想知道是否可以将记录器用于此目的。

最佳答案

您可以使用logging.getLogger('solution')。getEffectiveLevel()来获取整数格式的级别:

10用于调试
30为默认值,依此类推。

然后,您可以使用这些值来激活控制语句。这些值基本上是作为常量存储在“ logging.DEBUG”中的值。因此常量“ logging.DEBUG”实际上是10。

关于python - 如何在Python的代码中使用记录器级别的状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51167593/

10-12 20:22