繁体   English   中英

Android日志

[英]Android Logging

我需要在Android应用程序中记录异常。 有没有记录异常的方法,这样我就可以以图形方式读取此日志并将其发送到服务器或类似的东西?

我可以在这里看到几种不同的情况:

答:如果您在谈论开发过程,则可以通过单击“错误”筛选器在LogCat中查看异常(例如,在“调试”透视图中)。

B:如果您谈论的是生产应用程序中的崩溃,则堆栈跟踪会报告给Google,并可以在Android Market开发者控制台中查看。

C:否则,如果要记录并提交正在捕获的异常(因此不允许使活动崩溃),请查看如何从Android应用程序获取崩溃数据中的日志记录类

尝试使用Android Logger-这是SLF4J API的最简单实现:

android-logger.properties:

root=ERROR:MyApplication
logger.com.example.ui=DEBUG:MyApplication-UI

MainActivity.java:

package com.example.ui;

import com.noveogroup.android.log.Logger;
import com.noveogroup.android.log.LoggerManager;

public class MainActivity extends Activity {

  private static final Logger logger = LoggerManager.getLogger();

  private void foo(int value) {
    logger.i("entered MainActivity::foo value=%d", value);

    try {
      // some code
    } catch(IOException e) {
      logger.e("I/O error occurred", e);
    }
  }

}

LogCat输出:

I/MyApplication-UI: entered MainActivity::foo value=10
E/MyApplication-UI: I/O error occurred

C:否则,如果要记录并提交正在捕获的异常(因此不允许使活动崩溃),请查看如何从Android应用程序获取崩溃数据中的日志记录类?

代替使用Android日志记录类,可以使用android-logging-log4j记录异常堆栈跟踪。

使用SLF4J API在Android中记录异常堆栈跟踪

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ExampleLog4JOverSLF4J {
    private final Logger log = LoggerFactory.getLogger(ExampleLog4JOverSLF4J.class);

    public void myMethod() {
        try {
            // invoke code throwing an exception
        }
        catch(Exception e) {
            log.error("An error occured...", e);
            // recover or what ever
        }
    }
}

使用log4j API在Android中记录异常堆栈跟踪

import org.apache.log4j.Logger;

public class ExampleLog4J {
    private final Logger log = Logger.getLogger(LogConfiguratorTest.class);

    public void myMethod() {
        try {
            // invoke code throwing an exception
        }
        catch(Exception e) {
            log.error("An error occured...", e);
            // recover or what ever
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM