1

私の Android アプリケーションは、多くのログ メッセージを投稿します。これらすべてのログ メッセージを同じアプリケーション内で表示しようとしています。アプリケーションには、アプリケーションによってログに記録されたすべてのメッセージを一覧表示する UI 要素 (テキスト ビュー) があります。アプリケーション名 (たとえば、名前com.mycompany.myapp)でフィルター処理されたログ メッセージにアクセスするにはどうすればよいですか?

4

1 に答える 1

3

独自のアプリケーション名でフィルタリングされた、アプリケーション内のシステムログを表示するには、内部クラスとして以下を挿入します。

private static final String LogCatCommand = "logcat ActivityManager:I *:S";
private static final String ClearLogCatCommand = "logcat -c";

 private class MonitorLogThread extends Thread{
    public MonitorLogThread(){
    }

    BufferedReader br;

    @Override
    public void run() {
        try {
            Process process;
            process = Runtime.getRuntime().exec(ClearLogCatCommand);
                process = Runtime.getRuntime().exec(LogCatCommand);
                br = new BufferedReader(new InputStreamReader(process.getInputStream()));
                String line;
                // Check if it matches the pattern
                while(((line=br.readLine()) != null) && !this.isInterrupted()){

                // Filter for your app-line
                if (line.contains("your-filter-string")){
                    Log.i("myAppTag", "Found log-entry for my app:" + line);
                }

            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

そして、onCreate-Methodで:

  Thread mThread = new MonitorLogThread();
  mThread.start();

この例を正しく機能させるには、この例を適応させる必要があるかもしれません。

于 2012-06-14T12:12:27.137 に答える