如何在React Native上的安卓平台设置日志级别?

8
我正在查看React Native的代码,并在其中一个文件中找到了以下代码:
#define RCTLog(...) _RCTLog(RCTLogLevelInfo, __VA_ARGS__)
#define RCTLogTrace(...) _RCTLog(RCTLogLevelTrace, __VA_ARGS__)
#define RCTLogInfo(...) _RCTLog(RCTLogLevelInfo, __VA_ARGS__)
#define RCTLogWarn(...) _RCTLog(RCTLogLevelWarning, __VA_ARGS__)
#define RCTLogError(...) _RCTLog(RCTLogLevelError, __VA_ARGS__)

我想知道在Android中是否有类似于React Native的东西。我尝试查看React Native代码,但找不到任何方法来实现它。我想知道是否有人已经在Android上实现过它。

有人可以帮助我吗?

3个回答

1
我正在使用一些外部库/API,但无法通过标准日志记录调试我的问题。
放置
window.LOG_LEVEL = 'DEBUG'

在App.js的顶部打印了外部日志,使我能够调试问题。我认为你还可以向窗口传递其他日志级别。

1
也许现在已经太晚了,但是你可以使用react-native-android-log(我是作者)。
例如:
import Log from 'react-native-android-log'

// Set the default level (optional)
Log.setLevel(__DEV__ ? Log.VERBOSE : Log.WARN)
...
Log.v('Verbose message')    // no output in release builds
Log.w('Debugging')

...并通过adb在控制台中查看输出:

$ adb logcat -s App:V

或者在 VS Code 的“输出”面板中查看。

请查看包的 README,您将找到如何配置和使用它的说明。


0

React Native在底层使用Yoga来将其日志消息显示到屏幕上。我无法找到任何库可以为Android应用程序执行相同的操作。有很多库可以用来显示消息,以便您可以显示日志消息。在React Native中,日志组件是从Objective-C代码构建的,因此您无法从Java访问它。我过去几天尝试找到类似的东西,但没有成功。还有很多工具可以帮助您记录各种信息,但日志始终显示在控制台中。


我们不需要JS的答案,而是需要JAVA(Android)的答案 - 谢谢。 - odemolliens
你到底需要什么?如果你想在开发应用程序时记录数据到控制台,你可以使用JS控制台、Android控制台或iOS控制台。你也可以在Android Studio控制台、xCode控制台、终端或大多数IDE控制台中查看日志。或者你是在谈论报告日志,例如当应用程序在未知用户设备上崩溃时?如果你想在JAVA中将日志写入控制台,这里是如何做到的:https://developer.android.com/studio/debug/am-logcat.html。如果有更详细的信息,我可能会更有帮助。 - Vincent D'amour
"_RCTLog(RCTLogLevelWarning)" 允许我们添加本地日志,这些日志会在 RN 层显示,就像使用 "console.warn('message')" 一样。我们希望在 Android 上找到相同的方法。 - odemolliens
我根据本周所做的研究修改了我的答案。 - Vincent D'amour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接