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
网友评论