gpt4 book ai didi

java - Android 将日志写入文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:27 26 4
gpt4 key购买 nike

默认情况下,android 中的 Log 类将日志写入控制台 (logcat)。有什么简单的方法可以写日志吗?在某些文件中?

最佳答案

一个简单的Log类(仅用于开发/测试目的)类似于 android.util.Log ,但记录到 SD 卡。只有修改现有代码才能更改 import android.util.Logimport com.example.Log .同时添加权限为

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

package com.example.logger;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.os.Environment;

public class Log {
private static final String NEW_LINE = System.getProperty("line.separator") ;
public static boolean mLogcatAppender = true;
final static File mLogFile;

static {
mLogFile = new File( Environment.getExternalStorageDirectory(), "logs.log" );
if ( !mLogFile.exists() ) {
try {
mLogFile.createNewFile();
}
catch (final IOException e) {
e.printStackTrace();
}
}
logDeviceInfo();
}

public static void i( String TAG, String message ){
appendLog( TAG + " : " + message );
if ( mLogcatAppender ) {
android.util.Log.i( TAG, message );
}
}

public static void d( String TAG, String message ){
appendLog( TAG + " : " + message );
if ( mLogcatAppender ) {
android.util.Log.d( TAG, message );
}
}

public static void e( String TAG, String message ){
appendLog( TAG + " : " + message );
if ( mLogcatAppender ) {
android.util.Log.e( TAG, message );
}
}

public static void v(String TAG, String message ){
appendLog(TAG + " : " + message);
if ( mLogcatAppender ) {
android.util.Log.v( TAG, message );
}
}

public static void w( String TAG, String message ) {
appendLog( TAG + " : " + message );
if ( mLogcatAppender ) {
android.util.Log.w( TAG, message );
}
}

private static synchronized void appendLog( String text ) {
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

try {
final FileWriter fileOut = new FileWriter( mLogFile, true );
fileOut.append( sdf.format(new Date()) + " : " + text + NEW_LINE );
fileOut.close();
}
catch ( final IOException e ) {
e.printStackTrace();
}
}

private static void logDeviceInfo() {
appendLog("Model : " + android.os.Build.MODEL);
appendLog("Brand : " + android.os.Build.BRAND);
appendLog("Product : " + android.os.Build.PRODUCT);
appendLog("Device : " + android.os.Build.DEVICE);
appendLog("Codename : " + android.os.Build.VERSION.CODENAME);
appendLog("Release : " + android.os.Build.VERSION.RELEASE);
}

}

关于java - Android 将日志写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8446504/

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