gpt4 book ai didi

android - 文件输出流日志

转载 作者:行者123 更新时间:2023-11-29 18:04:48 35 4
gpt4 key购买 nike

对于我的应用程序,我想创建一个可以将数据记录到文件中的类。在我的应用程序中,如果他们遇到问题,可以给我发送电子邮件,并且来自此文件的数据可能会帮助我剖析问题。首先,我是否以错误的方式解决这个问题?有没有更好的方法来记录发生的异常?

问题是如果我尝试使用另一个类的日志方法:

Logger.log(0,"","","");

如果文件尚未创建,则无法找到文件或创建文件。代码附在下面。

package com.example.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.text.format.Time;
import android.util.Log;

public class Logger extends Activity {

final static String FileName = "Log";
static FileOutputStream fos;
static FileInputStream fis;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("logger", "oncreate");
try {
File f = getFileStreamPath(FileName);
if (!f.exists()) {
Log.d("logger", "file doesn't exist");
fos = openFileOutput(FileName, Context.MODE_APPEND);
fos.write(("Created on " + Build.TIME + "\nDevice name: "
+ Build.MODEL + " \nAndroid Version" + Build.VERSION.SDK_INT)
.getBytes());
fos.close();
}
fos = openFileOutput(FileName, Context.MODE_APPEND);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

public static void log(int type, String TAG, String msg) {
Log.d("logger", "file being written");
Log.println(type, TAG, msg);
Time now = new Time();
now.setToNow();
try {
fos = new FileOutputStream(FileName);
fos.write(("\n" + now.toString() + " " + type + " " + TAG + " " + msg).getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

最佳答案

您有什么理由不能使用像 log4j 或 slf4j 这样的标准日志记录库?我认为这些可以满足您的需求,而无需您自己编写 Logger 类。看起来 Android 上的 slf4j 仍处于测试阶段,但传闻表明人们已经成功地使用了它。

关于android - 文件输出流日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13979645/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com