以编程方式将android日志重定向到文件

时间:2013-11-20 13:08:55

标签: android logging

我试图找到这个,但找不到和结果。如果这是重复的话,请道歉。

我想将android日志写入文件。但我不希望它们最终被写入文件,而是在执行日志语句时,应将其写入此文件。

3 个答案:

答案 0 :(得分:0)

  

但我不希望它们最终被写入文件,而是在执行日志语句时,应将其写入此文件。

然后编写一个或多个记录到文件的方法,除了记录到LogCat之外。 在Java开发中已经完成了大约15年的日志记录,并且有很多代码可以用来演示它。

答案 1 :(得分:0)

你可以尝试这个代码!

public static void printLog(Context context){
String filename = context.getExternalFilesDir(null).getPath() + File.separator + "my_app.log";
String command = "logcat -d *:V";

Log.d(TAG, "command: " + command);

try{
Process process = Runtime.getRuntime().exec(command);

BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = null;
try{
    File file = new File(filename);
    file.createNewFile();
    FileWriter writer = new FileWriter(file);
    while((line = in.readLine()) != null){
        writer.write(line + "\n");
    }
      writer.flush();
      writer.close();
    }
     catch(IOException e)
     {
       e.printStackTrace();
     }
}
catch(IOException e)
{
e.printStackTrace();
}
}

参考:How to keep on appending logs while writing into File in SDCard?

答案 2 :(得分:0)

我用这个:

Logger logger=Logger.getLogger("myLoggerName");
logger.setLevel(Level.ALL);
File logFileDirectory=new File(getExternalFilesDir(null),"myLogDirectory");
addFileHandler(logger,logFileDirectory,"myLogFile");