将android logcat数据写入一个文件

我想在用户想要收集日志的时候将Android logcat转储到一个文件中。 通过adb工具,我们可以使用adb logcat -f filename将日志redirect到一个文件,但是我怎样才能以编程的方式进行呢?

  • Android Studios不理解日志function
  • MediaRecorder在启动时崩溃
  • 如何closuresMediaRecorder在状态改变时播放的声音
  • Android中的Log.d()或Log.e()会打印不需要的额外文本
  • 为Android应用程序login“Java库代码”库
  • 当我停止录制时,MediaRecorder失败
  • 为什么我不应该在android中使用System.out.println()
  • 在Android中删除SQLite中的行
  • 这是一个读取日志的例子 。

    你可以改变这个写入一个文件而不是一个TextView

    需要AndroidManifest权限:

     <uses-permission android:name="android.permission.READ_LOGS" /> 

    码:

     public class LogTest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { Process process = Runtime.getRuntime().exec("logcat -d"); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream())); StringBuilder log = new StringBuilder(); String line; while ((line = bufferedReader.readLine()) != null) { log.append(line); } TextView tv = (TextView) findViewById(R.id.textView1); tv.setText(log.toString()); } catch (IOException e) { } } } 

    Logcat可以直接写入一个文件:

     public static void saveLogcatToFile(Context context) { String fileName = "logcat_"+System.currentTimeMillis()+".txt"; File outputFile = new File(context.getExternalCacheDir(),fileName); @SuppressWarnings("unused") Process process = Runtime.getRuntime().exec("logcat -f "+outputFile.getAbsolutePath()); } 

    有关logcat的更多信息:请参阅http://developer.android.com/tools/debugging/debugging-log.html

    或者你可以试试这个varian

    尝试{
        最终文件path=新文件(
                 Environment.getExternalStorageDirectory(),“DBO_logs5”);
         if(!path.exists()){
             path.mkdir();
         }
        调用Runtime.getRuntime()。EXEC(
                 “logcat -d -f”+ path + File.separator
                         +“dbo_logcat”
                         +“.txt”);
     catch(IOException e){
         e.printStackTrace();
     }
    
     public static void writeLogToFile(Context context) { String fileName = "logcat.txt"; File file= new File(context.getExternalCacheDir(),fileName); if(!file.exists()) file.createNewFile(); String command = "logcat -f "+file.getAbsolutePath(); Runtime.getRuntime().exec(command); } 

    以上方法将所有日志写入文件。 也请在Manifest文件中添加下面的权限

     <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />