【问题标题】:React Native, Android Log.反应原生,Android 日志。
【发布时间】:2016-09-03 18:23:22
【问题描述】:

有没有办法在 react native 中查看来自 android 的本地 (java) 模块的日志?

我正在使用 javas 日志模块 https://developer.android.com/reference/android/util/Log.html - 但我没有从那里得到任何东西。老实说,如果可能的话,我不确定如何使用它。 atm 没有太多代码 - 它只是

    Log.d("Notification","Notify App");

因为我想看看我是否可以在某处看到通知 - 我知道 java 模块已正确注册,因为我正在从中调用其他函数。

谢谢!

【问题讨论】:

  • 是的,据我所知,这仅显示了在 javascript 中登录的内容,我正在尝试在 java 模块中获取日志
  • 确实,它看起来就像 github.com/facebook/react-native/blob/master/local-cli/… 所做的那样。啊,问题可能是您的日志因其标签而被忽略。你能把Log.d("Notification","Notify App");改成Log.d("ReactNative","Notify App");吗?
  • 将其标记为 ReactNative 有效!谢谢菲丹
  • @FidanHakaj 你是救生员!非常感谢,我挣扎了好几个小时

标签: java android react-native


【解决方案1】:

如果您将Log.ds 放入您的本机代码中,您可以在 android studio 中使用 Android Device Monitor 访问日志,或者在终端上使用以下命令: adb -d logcat <your package name>:<log level> *:S

确保您的手机已启用 USB 调试。

【讨论】:

  • android 设备监视器工作正常,谢谢!您也可以将日志标记为“ReactNative”并且它们会显示出来——就像 Fidan Hakaj 在 cmets 中建议的那样
【解决方案2】:

adb logcat -s可用于打印其标签列在其标签列表中的日志。

就您的问题而言,标签是“通知”,因此您可以使用以下命令查看:

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 了解更多信息。

【讨论】:

    【解决方案3】:

    React Native CLI 现在附带 a command for showing JavaScript logs:

    npx react-native log-android
    

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

    【讨论】:

    • 必须放入类似这样的内容:public void changeVoiceToAlien(String file) { Log.i("ReactNative", "My log here ALIEN"); }
    【解决方案4】:

    您可以使用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面板中看到输出。

    【讨论】:

      【解决方案5】:

      别忘了: 导入android.util.Log;

      【讨论】:

        猜你喜欢
        • 2017-04-22
        • 1970-01-01
        • 1970-01-01
        • 2017-02-06
        • 2018-02-08
        • 1970-01-01
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多