我制作了一个使用 aws cognito sdk 登录用户池的 android 应用程序。这将返回 3 个令牌(id、访问、刷新),然后我可以调用我的 api 网关。这一切都有效,没有问题。但是,当我调试应用程序时,我看不到我的应用程序对 cognito 进行的调用以获取这些令牌。我已尝试按照https://docs.aws.amazon.com/mobileanalytics/latest/ug/sdk-logging.html添加详细日志记录,但这没有奏效。文档https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html中描述了 5 个端点,但它们似乎都没有使用用户名/密码。
1 回答
1
SDK 使用 Apache Commons Logging library (JCL) 如果它存在于类路径中,否则它使用 android.util.Log。 使用 JCL: JCL 是流行的日志 API 的包装器,例如 Log4J、logback 等。如果您的应用程序不依赖任何这些 API,常见的日志库默认为 JDK 中的 java.util.logging 包。JCL 行为的配置最终取决于所使用的日志记录工具包(log4j、logback 等)。请参阅所选日志系统的文档以调整日志级别。如果您默认使用 java.util.logging 包,您可以按如下方式更改日志级别:
将 logging.properties 文件添加到 res/raw 并将以下内容添加到 MainActivity 的 onCreate
logger = Logger.getLogger(PubSubActivity.class.getName());
InputStream raw = getResources().openRawResource(R.raw.logging);
LogManager lManager = LogManager.getLogManager();
lManager.readConfiguration(raw);
使用 Android 日志:在这种情况下,无法更改整个 SDK 的日志级别。但是,作为出于调试目的更改日志级别的解决方法,您可以使用以下命令为特定标签更改它:
adb shell setprop log.tag.<YOUR_LOG_TAG> <LEVEL>
于 2019-01-17T23:56:18.650 回答