안드로이드 로그 파일로 기록하기

나고수·2022년 11월 21일
0

1일1공부

목록 보기
67/68

안드로이드 로그를 파일로 기록하는 방법은
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에 저장되어있음.

이런식으로 저장된다.

profile
되고싶다

0개의 댓글