안드로이드 로그를 파일로 기록하는 방법은
1. Log4J를 이용하여 기기에 기록하기
2. 써드파티 라이브러리 없이 파일 입출력만 이용해서 기기에 기록하기
3. adb logcat을 이용하여 컴퓨터에 파일로 기록하기 , 참고
중 2번을 이용해서 로그를 기기에 기록해 볼 것이다.
참고한 블로그
//실제 사용
LogHelper.mLog("이걸 기록해라!!!", applicationContext, LogLevel.DEBUG)
//LogHelper class
object LogHelper {
fun mLog(text: String, context: Context, logLevel: LogLevel) {
val calendar = Calendar.getInstance()
val mdFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
//날짜마다 새로운 파일이 만들어 지도록 했다.
val hourFormat = SimpleDateFormat("yyyy_MM_dd")
val strDate: String = mdFormat.format(calendar.time)
//내부 저장소 캐시에 저장되게 했다. 위치는 맘대로~
val logFile =
File(context.cacheDir.absolutePath, "${hourFormat.format(calendar.time)}.file")
if (!logFile.exists()) {
try {
logFile.createNewFile() //// 파일이 없는 경우 생성하고
} catch (e: IOException) {
e.printStackTrace()
}
}
try {
//// 현재 일시를 가져와서 함께 기록
val buf = BufferedWriter(FileWriter(logFile, true))
buf.append("[$strDate][${logLevel.txt}]$text")//append를 했기때문에, 이전 파일에 이어서 쭉 작성됨
buf.newLine()
buf.close()
} catch (e: IOException) {
e.printStackTrace()
}
}
}
//원하는 로그레벨 만들기
enum class LogLevel(val txt: String) {
ERROR("error"), DEBUG("debug")
}
data/data/packageName/cache에 저장되어있음.
이런식으로 저장된다.