If you think the Android project slf4android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package pl.brightinventions.slf4android;
//fromwww.java2s.comimport android.content.Context;
import android.os.AsyncTask;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
class ReadLogcatEntriesAsyncTask extends AsyncTask<Context, Void, File> {
privatestaticfinal Logger LOG = LoggerFactory.getLogger(ReadLogcatEntriesAsyncTask.class.getSimpleName());
@Override
protectedFile doInBackground(Context... params) {
if (params == null || params.length == 0 || params[0] == null) {
LOG.warn("Wrong arguments passed to read logcat entries");
return null;
}
Context ctx = params[0];
try {
File tempFile = File.createTempFile("logcat", ".log", ctx.getExternalCacheDir());
String fullPath = tempFile.getAbsolutePath();
String readLogcatCommand = String.format("logcat -v time -d -f %s", fullPath);
Runtime runtime = Runtime.getRuntime();
if (runtime != null) {
try {
Process process = runtime.exec(readLogcatCommand);
int exitCode = process.waitFor();
if (exitCode != 0) {
LOG.warn("Command {} returned with code {}", readLogcatCommand, exitCode);
} else {
LOG.info("Dumped logcat entries to {} with size {} KB - will now clear it", fullPath, tempFile.length() / 1024);
runtime.exec("logcat -c");
}
} catch (IOException e) {
LOG.warn("Error dumping logcat entries to {}", fullPath, e);
} catch (InterruptedException e) {
LOG.warn("Error dumping logcat entries to {}", fullPath, e);
}
}
return tempFile;
} catch (IOException e) {
LOG.warn("Error creating temp file, did you enable write permissions?", e);
return null;
}
}
}