React Native,Android日志。

28
在React Native中,有没有一种方法可以查看Android本地(Java)模块的日志?我正在使用Java的日志模块https://developer.android.com/reference/android/util/Log.html,但我从那里得不到任何东西。说实话,如果可能的话,我也不确定如何使用它。目前没有太多的代码 - 只是...
    Log.d("Notification","Notify App");

因为我想知道是否可以在某个地方看到通知 - 我知道Java模块已经正确注册,因为我正在调用它的其他函数。
谢谢!

你尝试过访问 https://facebook.github.io/react-native/docs/debugging.html#accessing-console-logs 吗? - Ferran Negre
6
看起来确实是这样的,它会执行此操作:https://github.com/facebook/react-native/blob/master/local-cli/logAndroid/logAndroid.js#L30。 问题可能是由于日志标签而导致您的日志被忽略了。您可以将Log.d("Notification", "Notify App");更改为Log.d("ReactNative", "Notify App"); - Fidan Hakaj
4
标记为ReactNative可以了!谢谢Fidan。 - Nur Bar
1
@FidanHakaj 你真是个救命恩人!非常感谢,我苦苦挣扎了好几个小时。 - toioski
React Native 0.61,日志对我不起作用(无论使用哪个标签)。但是普通的System.out可以工作,所以至少我可以用它来处理一些小事情。 - Paco1
显示剩余3条评论
5个回答

18
如果你在你的本地代码中加入了 `Log.d`,你可以使用Android Studio中的Android设备监视器或在终端上使用以下命令来访问日志: adb -d logcat <your package name>:<log level> *:S 请确保您的手机开启了USB调试。

1
Android设备监视器可以正常工作,谢谢!您也可以将日志标记为“ReactNative”,它们会显示出来 - 就像Fidan Hakaj在评论中建议的那样。 - Nur Bar

18

adb logcat -s 可以用来打印其标签列表中列出的标签的日志。

在您的问题中,标签为“Notification”,因此您可以使用以下命令查看:

adb logcat -s Notification:V

对于React Native开发,您可能希望使用"ReactNative"和"ReactNativeJS"标签来获取ReactNative和JavaScript消息... 因此,适当的命令是:

adb logcat -s ReactNative:V,ReactNativeBleManager:V

要添加任何其他模块的日志,请查看Java代码以查看它使用的标记,然后将其添加到列表中。

例如,蓝牙模块"react-native-ble-manager"记录为Log.d("ReactNativeBleManager", "The log message"),因此要包含这些消息,请更改命令为:

adb logcat -s ReactNative:V,ReactNativeJS:V,ReactNativeBleManager:V

点击此处查看文档:https://developer.android.com/studio/command-line/logcat.html 以获取更多信息。


被低估的答案。我正在寻找这个答案。 每个人都建议使用npx react-native log-android,但它只记录ReactNative和ReactNativeJS标签。 - CrackerKSR

6

React Native CLI现在附带了一个命令,用于显示JavaScript日志:(访问控制台日志)

npx react-native log-android

酷的是,如果你使用 Log.i("ReactNative", "My log here");(确保首先在Java文件顶部导入import android.util.Log;),你将在终端看到它出现。魔法部分是Log.i方法调用的第一部分中的“ReactNative”过滤器。

1
必须放在类似这样的代码块中:public void changeVoiceToAlien(String file) { Log.i("ReactNative", "My log here ALIEN"); } - Squirrl

2
不要忘记: 导入android.util.Log;

2
你可以使用https://www.npmjs.com/package/react-native-android-log
示例:
import Log from 'react-native-android-log'

// Set the default priority level (optional)
Log.setLevel(__DEV__ ? Log.VERBOSE : Log.WARN)

...
Log.v('Verbose message')    // no output in release builds
Log.w('Debugging')

// debugging message with amother tag:
Log.d('Proc2', 'warning')

你可以通过adb logcat -s App:V Proc2:V在控制台中查看输出,或者在VS Code的OUTPUT面板中查看。

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