簡體   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