美文网首页
Android-log

Android-log

作者: ChaosHeart | 来源:发表于2021-08-16 13:58 被阅读0次
    package com.example.a3java;
    
    import android.util.Log;
    
    import androidx.annotation.NonNull;
    import androidx.annotation.Nullable;
    
    import java.text.DateFormat;
    import java.text.FieldPosition;
    import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    
    ///模块 : 日志
    ///开发/时间 : 20210/0816/1150
    public final class logs {
        //Log输出类名
        private static String className;
        //Log输出方法
        private static String methodName;
        //Log输出行号
        private static int lineNumber;
        //Log输出时间
        private static String dateStr;
    
    
        ///是否可Debug状态
        public static boolean isDebuggable() {
            return BuildConfig.DEBUG;
        }
    
        ///创建Log输出的基本信息
        private static String createLog(String log) {
            StringBuffer buffer = new StringBuffer();
            buffer.append(dateStr);
            buffer.append(" [");
            buffer.append(methodName);
            buffer.append("()");
            buffer.append(" line:");
            buffer.append(lineNumber);
            buffer.append("] ");
            buffer.append("💙 ");
            buffer.append(log);
    
            return buffer.toString();
        }
    
        ///取得输出所在位置的信息 className methodName lineNumber
        private static void getMethodNames(StackTraceElement[] sElements) {
            className = sElements[1].getFileName().split("\\.")[0];
            methodName = sElements[1].getMethodName();
            lineNumber = sElements[1].getLineNumber();
            dateStr = getDateStr();
        }
    
        ///当前日志打印的时间
        private static String getDateStr() {
            Date date = new Date();
            SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
            return format.format(date);
        }
    
        public static void e(String message) {
            if (!isDebuggable())
                return;
    
            getMethodNames(new Throwable().getStackTrace());
            Log.e(className, createLog(message));
        }
    
        public static void i(String message) {
            if (!isDebuggable())
                return;
    
            getMethodNames(new Throwable().getStackTrace());
            Log.i(className, createLog(message));
        }
    
        public static void d(String message) {
            if (!isDebuggable())
                return;
    
            getMethodNames(new Throwable().getStackTrace());
            Log.d(className, createLog(message));
        }
    
        public static void v(String message) {
            if (!isDebuggable())
                return;
    
            getMethodNames(new Throwable().getStackTrace());
            Log.v(className, createLog(message));
        }
    
        public static void w(String message) {
            if (!isDebuggable())
                return;
    
            getMethodNames(new Throwable().getStackTrace());
            Log.w(className, createLog(message));
        }
    
        public static void wtf(String message) {
            if (!isDebuggable())
                return;
    
            getMethodNames(new Throwable().getStackTrace());
            Log.wtf(className, createLog(message));
        }
    
    }
    
    
    package com.example.a3java;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.util.Log;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            helloWord();
        }
    
        //实例方法
        void helloWord() {
           logs.e("helloWord"); //日志
        }
    }
    
    E/MainActivity: 2021-08-16 01:59:58 [helloWord() line:19] 💙 helloWord
    

    相关文章

      网友评论

          本文标题:Android-log

          本文链接:https://www.haomeiwen.com/subject/pjvmbltx.html