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