记录到Android上的文件

Gre*_*g B 26 logging android

有没有办法从Android手机中检索日志消息.

我正在构建一个使用我的HTC Hero的GPS的应用程序.我可以从eclipse运行和调试应用程序,但这不是一个很好的GPS用例,坐在我的办公桌前.

当我四处走动时,当我开启应用程序时,我会出现间歇性异常.无论如何,我可以将这些例外输出到SD卡上的文本文件或输出Log.x("")到文本文件的调用,以便我可以看到异常是什么.

谢谢

编辑:解决方案

这是我最终使用的代码......

Thread.currentThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {

    PrintWriter pw;
    try {
        pw = new PrintWriter(
                new FileWriter(Environment.getExternalStorageDirectory()+"/rt.log", true));
        ex.printStackTrace(pw);
        pw.flush();
        pw.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
});
Run Code Online (Sandbox Code Playgroud)

我不得不包裹这条线

pw = new PrintWriter(new FileWriter(Environment.getExternalStorageDirectory()+"/rt.log", true));
Run Code Online (Sandbox Code Playgroud)

在try/catch中,因为Eclipse不会让我编译应用程序.它不停地说

Unhandled exception type IOException

1 quick fix
    Sorround with try/catch
Run Code Online (Sandbox Code Playgroud)

所以我做了,这一切都很好,但我确实让我想知道Eclipse是关于什么...

Dav*_*ebb 18

您可以使用Thread.setUncaughtExceptionHandler()捕获异常.

写入SD卡就像检索卡的目录并在Environment.getExternalStorageDirectory()那里创建文件一样简单.

File f = new File(Environment.getExternalStorageDirectory(),filename);
Run Code Online (Sandbox Code Playgroud)

您需要向应用程序提供正确的权限才能写入SD卡,方法是将其添加到您的Manifest中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)


小智 6

Log4j或slf4j也可以与logcat一起用作Android中的日志框架.查看项目android-logging-log4j.配置日志记录到(旋转)文件非常简单.

 static {
    final LogConfigurator logConfigurator = new LogConfigurator();

    logConfigurator.setFileName(Environment.getExternalStorageDirectory() + "myapp.log");
    logConfigurator.setRootLevel(Level.DEBUG);
    // Set log level of a specific logger
    logConfigurator.setLevel("org.apache", Level.ERROR);
    logConfigurator.configure();
}
Run Code Online (Sandbox Code Playgroud)


dar*_*ius 5

你可以看看microlog4android.他们有一个准备好登录文件的解决方案.

https://github.com/johanlkarlsson/microlog4android