[Kotlin/Android Library] Local Log

Programming/Android Library 2021. 4. 2. 16:40 Posted by 생각하는로뎅
반응형

  가끔씩 로컬에 데이터를 저장해서 보고 싶을때가 종종 있었다.

 

  매번 만들기도 귀찮고, 관련 라이브러리 찾기도 귀찮아서 직접 만들기로했다.

 

  차기 버전은 아래와 같이 순서대로 배포될 예정이다.

     

     1. 로컬 파일로 저장하는 기능 -> v1.0.2

     2. 하루씩 파일로 나눠서 저장하는 기능 개발. -> v1.1.0

     3. 용량별로 나눠서 저장하는 기능 개발. -> v1.2.0

     4. 네트워크로 로그를 보낼 수 있도록 개발.

  

 


github.com/costnc/LocalLogProject

 

costnc/LocalLogProject

Contribute to costnc/LocalLogProject development by creating an account on GitHub.

github.com

 

LocalLogProject

 

지원

  • 안드로이드 라이브러리
  • 로컬 파일로 로그를 저장하는 기능
    • support >= Build.VERSION_CODES.JELLY_BEAN(16)
    • support >= Build.VERSION_CODES.Q(29)
  • 날짜별 로그 파일 저장 기능
  • 파일 사이즈별 로그 파일 저장 기능
  • 릴리즈 모드는 log를 기록하지 않습니다.
    • 라이브러리에서 기록하도록 설정 가능
  • use io.reactivex.rxjava3:rxandroid:3.0.0
    • 파일 저장시, 별도의 background 쓰레드를 이용해서 저장하도록 구성되어 있습니다.(rxAndroid 라이브러리 사용)
  • targetSdkVersion 30

 

사용방법

 

Step 1. Add the JitPack repository to your build file

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}

Step 2. Add the dependency

dependencies {
        implementation 'com.github.costnc:LocalLogProject:1.2.0'
}

Step 3. add application class

<application
        android:name=".ApplicationClass"
        ...
/>

Step 4. init LocalLog in application calss

 

kotlin

class ApplicationClass : Application() {

    override fun onCreate() {
        super.onCreate()

        val builder : LogFile.Builder = LogFile.Builder(applicationContext);
        /* if want save log file : set file name */
        builder.fileName("saveLogFile")
        /* if want save log file : set path */
        builder.path("sub/sub")
        /* if want log files by date */
        builder.asTrunDate()
        /* if want log files by size(byte) */
        builder.trunLogFileSize = 100

        LocalLog
            .initialize(applicationContext)
            /* if >= Build.VERSION_CODES.Q) : download folder save
                cause -> Android 11 issue */
            .saveLogFile(builder.build())
            /* if  want release mode log */
            .enableReleaseLog(false)
            /* if want save log with release */
            .enableReleaseSaveFileLog(false)

    }
    
}

java

public class MainAppliction extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        
        LogFile.Builder builder = new LogFile.Builder(getApplicationContext());
        /* if want save log file : set file name*/
        builder.fileName("saveLogFile");
        /* if want log files by size(byte) */
        builder.asTrunLogFileSize(100);
        /* if want save log file : set path, default is root folder*/
        builder.path("sub/sub");
        /* if want log files by date */
        builder.asTrunDate();

        LocalLog
                .Companion.initialize(MainAppliction.this)
                /* if >= Build.VERSION_CODES.Q) : download folder save
                cause -> Android 11 issue */
                .saveLogFile(builder.build())
                /* if  want release mode log */
                .enableReleaseLog(false)
                /* if want save log with release */
                .enableReleaseSaveFileLog(false);
                
    }
}

Step 5. use Log

 

kotlin

LocalLog.d("lim.sung.jin", "testset1");
LocalLog.d("lim.sung.jin", "testset2");
LocalLog.d("lim.sung.jin", "testset3");

 

java

LocalLog.d("lim.sung.jin", "testset1");
LocalLog.d("lim.sung.jin", "testset2");
LocalLog.d("lim.sung.jin", "testset3");
반응형