【问题标题】:Codename One: log which code is calling another code代号一:记录哪个代码正在调用另一个代码
【发布时间】:2019-05-25 07:09:02
【问题描述】:

这个问题只涉及代号一。

简短的故事: 我正在调试一个奇怪的错误,它只发生在真实设备中,而不是在模拟器中。有一种方法在特定情况下每秒调用一次,所以我怀疑是一个计时器。但是哪个计时器?调查谁在调用此方法:

  1. 我启用了setEnableAsyncStackTraces(true) (https://www.codenameone.com/blog/better-error-logging.html)

  2. 我在方法中插入了这个异常:throw new IllegalStateException("Who Is Calling me?");

在那之后,我发现了哪个计时器正在调用我的方法。然而,这种调试方式并不总是可行的,因为它迫使我插入一个导致应用程序崩溃的异常。

你有什么建议吗?你认为像Log.printAsyncStackTrace() 这样的新API 在这些情况下有用吗?

谢谢

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    你可以这样使用:

    try { 
       throw new RuntimeException("This is the caller");
    } catch(RuntimeException e) {
       Log.e(e);
       Log.sendLogAsync();
    }
    

    它没有应有的效率,但日志不会更有效率,并且可能会被开发人员滥用。至少这看起来很糟糕,所以开发人员知道不要将其留在生产环境中。

    【讨论】:

      猜你喜欢
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多