【问题标题】:an efficient logger for app-engine on android studioandroid studio 上应用引擎的高效记录器
【发布时间】:2015-04-13 21:49:24
【问题描述】:

作为比较,android 有一个非常棒的记录器,我可以在一行中完成

Log.d("TAG", "Something important is happening here.");

在app engine上使用eclipse,我一直在做

private static final Logger LOG = Logger.getLogger(MyClass.class.getName());
…
//inside method
LOG.info("I don’t want to have two lines");

我要搬到 android studio,有没有办法做一些像 android 上的一样酷的事情?我想我可能不得不向 Gradle 添加一个依赖项。任何想法我可以如何做到这一点?

【问题讨论】:

    标签: java google-app-engine logging android-studio


    【解决方案1】:

    不知道你在问什么。您的日志记录如何依赖于您的 IDE?

    但要回答您的问题:在 AppEngine 上使用 Java 时,您应该使用 java.util.logging。只有 java.util.logging 日志会进入云控制台的监控 -> 日志部分。我们在我们的项目中使用 slf4j,如果您有多个具有不同日志记录机制但使用相同语法的项目,这很好。

    实际上,您也可以使用不同的记录器并将日志写入System.out,但我不推荐这样做。您应该使用 App Engine 提供的工具。

    如果必须,您可以执行与 Android Studio 中类似的操作。这可能适用于 Log 类的静态导入和大量反射/堆栈展开以获取日志记录类名称。由于反射与性能相反,我不会那样做。

    【讨论】:

      【解决方案2】:

      很遗憾,您提到的 Log(很酷的)是 Android 框架的一部分,它独立于您的 IDE。

      您可以构建自己的日志“utils”并扩展它或静态调用它以减少日志记录代码。

      例如。

      public class LogAware {
      
          protected void log(Level level, String message){
              Logger.getLogger(this.getClass().getName()).log(level,message);
          }
      
          protected void logInfo(String message){
              log(Level.INFO,message);
          }
      
          protected void logFine(String message){
              log(Level.FINE,message);
          }
      
          protected void logWarning(String message){
              log(Level.WARNING,message);
          }
      
          protected void logSevere(String message){
              log(Level.SEVERE,message);
          }
      
          protected void logException(Exception e){
              Logger.getLogger(this.getClass().getName()).log(Level.SEVERE,"Exception Thrown",e);
          }
      

      【讨论】:

      • 代码示例正是我在回答中警告的内容。这段代码不仅在每次调用 logException 和 log 时都使用反射(这对性能不利),而且它还会始终将 LogAware 显示为日志记录的来源,这不是您想要的。
      猜你喜欢
      • 2023-01-30
      • 2013-08-23
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 2013-04-19
      相关资源
      最近更新 更多