Android アプリケーションの起動中に SD カードにログ ファイルを作成し、そのファイルにログを書き込みたいのですが、どのようにすればよいですか? 誰かが知っているなら、私を助けてください..
1258 次
3 に答える
1
そのためのクラスを作成しました:
public class Logger {
public void appendLog(String text,String filename)
{
File dir = new File("sdcard/YourFolderName");
if(!dir.exists())
{
dir.mkdirs();
}
File logFile = new File("sdcard/YourFolderName/"+filename+".txt");
if (!logFile.exists())
{
try
{
logFile.createNewFile();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try
{
//BufferedWriter for performance, true to set append to file flag
BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true));
buf.append(text);
buf.newLine();
buf.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
メソッドでは、ログの詳細とtxtファイル名を渡すことができます:)
于 2012-04-18T07:14:54.540 に答える
0
private File cacheDir;
if(android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"MyLog");
if(!cacheDir.exists())
cacheDir.mkdirs();
SD カードにディレクトリが作成され、ファイルを作成してそこにログを書き込むことができます。
File f = new File(cacheDir, filename); //(File dirPath,String filename)
この行を使用すると、ディレクトリにファイルを作成し、そのファイルにログを書き込むことができます...
これが正しいとマークするのに役立つ場合:)
于 2012-04-18T07:18:23.733 に答える
0
SDカードにログファイルを作成
この方法を使用します。メッセージをこのメソッドに引数として渡すだけです。
public static void addRecordToLog(String message){
//Not in release: Log.d("SmartCalendar", message);
LogRecord logRecord = new LogRecord(Level.INFO, message);
FileHandler logger = null;
if (logger == null) {
try {
logger = new FileHandler(Environment.getExternalStorageDirectory() + "/Android" + Environment.getDataDirectory() + "/dwivedi/files/log_" + new Date().getTime() + ".xml");
} catch (IOException e) {
Log.e("SmartCalendar", e.toString());
// it seems that no dirs on sd card
File dir = new File(Environment.getExternalStorageDirectory() + "/Android" + Environment.getDataDirectory() + "/dwivedi/files/");
dir.mkdirs();
try {
logger = new FileHandler(Environment.getExternalStorageDirectory() + "/Android" + Environment.getDataDirectory() + "/dwivedi/files/log_" + new Date().getTime() + ".xml");
} catch (IOException e1) {
Log.e("SmartCalendar", e1.toString());
return;
}
} catch (Exception e) {
Log.e("SmartCalendar", e.toString());
return;
}
}
logger.publish(logRecord);
}
注: READ および WRITE 外部ストレージの許可を忘れないでください。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
于 2013-08-27T07:36:12.337 に答える