사악미소
현대마법의 공방
사악미소
전체 방문자
오늘
어제
  • 분류 전체보기
    • Document
    • JavaScript
    • jQuery
    • Spring Web
      • Spring Framework
      • Spring Boot
    • Android
      • Java Code
      • Setting
    • iOS
      • Swift Code
      • Setting
    • PHP
      • Code
      • Setting
    • AWS
    • LINUX
      • Rocky Linux
      • CentOS
    • Node.js
    • Developer Tool
    • GIT
    • MAC
    • Scraping Document
    • MariaDB
    • WYSIWYG
    • Scouter
    • Docker
    • Planning
    • 용어정리
반응형

인기 글

최근 댓글

Programmer 사악미소.
사악미소

사악미소의 현대마법의 공방

[Android] 출력 위치를 확인하는 Custom Log Message 제작
Android/Java Code

[Android] 출력 위치를 확인하는 Custom Log Message 제작

2023. 2. 2. 14:53
728x90

 

# 소스코드

 

1) Custom Log Message 제작

 

프로젝트에 utility라는 패키지를 추가한다.

 

 

패키지가 생성되면 LogMsgOutput 클래스 파일을 생성한다.

 

 

LogMsgOutput 클래스 파일 코드는 아래와 같다.

 

LogMsgOutput.java
package org.example.customlog.utility;

import android.content.Context;
import android.util.Log;

public class LogMsgOutput {

    private static String lineOut() {
        int level = 4;
        StackTraceElement[] traces;
        traces = Thread.currentThread().getStackTrace();
        return ("at " + traces[level] + " ");
    }

    private static String buildLogMsg(String message) {
        StackTraceElement ste = Thread.currentThread().getStackTrace()[4];
        StringBuffer sb = new StringBuffer();
        sb.append(" [ ");
        sb.append(ste.getFileName().replace(".java", ""));
        sb.append(" :: ");
        sb.append(ste.getMethodName());
        sb.append(" ] ");
        sb.append(message);
        return sb.toString();
    }

    public static void logPrintOut(Context context, String logMsg) {
        //resources.getSystem().getString(R.string.execMode);
        if("debug".equals("debug") == true) {
            Log.d("MSG:::By-LogUtil:::", buildLogMsg(logMsg + " :: " + lineOut()));
        }
    }
}

 


 

2) Log를 출력할 MainActivity

MainActivity.java
package org.example.customlog;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import org.example.customlog.utility.LogMsgOutput;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LogMsgOutput.logPrintOut(getApplicationContext(), "Custom LogMessage 출력");
    }
}

 


 

# 출력결과

 

프로젝트를 실행하고 Logcat 결과를 확인하면 추가한 Log Message가 출력되는 것을 알 수 있다.

위와 같은 형태로 출력되는데 맨 끝의 ( ClassName.java : LineNumber )를 선택하면

 

Log Message가 작성된 Class 파일의 해당 라인으로 이동할 수 있다.

 

 

 

 

728x90

'Android > Java Code' 카테고리의 다른 글

[Android] Retrofit2를 사용한 API 통신 설정 및 Data 송수신  (0) 2023.02.07
[Android] Keyboard위에 Edit Text 올리기  (0) 2023.02.06
[Android] FCM 메시지 송수신 Application 제작  (0) 2023.02.01
[Android] Activity에서 Dark Theme 비활성화기  (0) 2023.01.04
[Android] 갤러리 이미지 가져오기 및 썸네일 생성  (0) 2022.11.10
    'Android/Java Code' 카테고리의 다른 글
    • [Android] Retrofit2를 사용한 API 통신 설정 및 Data 송수신
    • [Android] Keyboard위에 Edit Text 올리기
    • [Android] FCM 메시지 송수신 Application 제작
    • [Android] Activity에서 Dark Theme 비활성화기
    사악미소
    사악미소

    티스토리툴바