python - 如何在 Python 代码中使用记录器级别状态
问题描述
我有以下记录器(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)
记录器可以设置为调试/信息等...
稍后在我的代码中,我确实收到了来自 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。
推荐阅读
- maven - 从命令行指定 Maven 插件存储库
- python - Python Loop 正在从 MYSQL 数据库打印结果两次
- r - 如何使用 str_detect 边界(tidyr 包)
- db2 - 无法使用 ADMIN_DROP_SCHEMA 存储过程在 DB2 中删除模式
- javascript - 调用 API 时如何使用 Redux 设置加载组件
- python - 错误:命令 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' 失败,退出状态为 1158
- javascript - 在 Angular 8 中的另一个应用程序中引用服务代码
- android - (导航组件)返回首页fragment时如何在activity上显示返回箭头?
- asp.net-core - ASP.NET Core Application Insights - 跟踪经过身份验证的用户 ID
- javascript - 触发模态确认时Formik丢失字段