该文件存放于 /data/data/包名/files/目录下
package com.joydata.www.logger;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.Calendar;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class MainActivity extends AppCompatActivity {
FileOutputStream out = null;
BufferedWriter write = null;
Calendar calendar = null;
Lock lock = new ReentrantLock(true); //true表示公平锁
int year = 0;
int month = 0;
int day = 0;
int hour = 0;
int min = 0;
int sec = 0;
int msec = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log("this is test log");
}
public void Log (String content) {
lock.lock();
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH ) + 1;
day = calendar.get(calendar.DAY_OF_MONTH);
String log_file = String.format("%d-%d-%d.log",year,month,day);
try {
out = openFileOutput(log_file, Context.MODE_APPEND); //文件不存在则创建
write = new BufferedWriter(new OutputStreamWriter(out));
hour = calendar.get(Calendar.HOUR_OF_DAY); //24小时制
min = calendar.get(Calendar.MINUTE);
sec = calendar.get(Calendar.SECOND);
msec = calendar.get(Calendar.MILLISECOND);
String str = String.format("[%04d-%02d-%02d %02d:%02d:%02d:%03d] %s\n",year,month,day,hour,min,sec,msec,content);
write.write(str);
write.close();
write = null;
} catch (IOException e) {
e.printStackTrace();
} finally {
lock.unlock(); //解锁
}
}
}