JAVA中实现C语言的_FILE_,_LINE_,_FUNC_,_TIME_

package com.example.test;  
  
import android.os.Bundle;  
import android.app.Activity;  
import android.util.Log;
import java.text.SimpleDateFormat; 
import java.util.Date; 
public class MainActivity extends Activity 
{
 public static String _FILE_() 
 { 
  StackTraceElement stackTraces[] = (new Throwable()).getStackTrace();  
  return stackTraces[1].getFileName(); 
 }
 public static int _LINE_() 
 { 
  StackTraceElement stackTraces[] = (new Throwable()).getStackTrace();  
  return stackTraces[1].getLineNumber(); 
 } 
 public static String _FUNC_() 
 { 
  StackTraceElement stackTraces[] = (new Throwable()).getStackTrace();   
  return stackTraces[1].getMethodName();
 } 
 public static String _TIME_() 
 { 
  Date now = new Date(); 
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
  return sdf.format(now); 
 } 
 public static String _FILE_LINE_FUNC_() 
 {   
  StackTraceElement stackTraces[] = (new Throwable()).getStackTrace();   
  StringBuffer strBuffer = new StringBuffer("[");
  strBuffer.append(stackTraces[1].getFileName()).append("|");  
  strBuffer.append(stackTraces[1].getLineNumber()).append("|");  
  strBuffer.append(stackTraces[1].getMethodName()).append("]");    
  strBuffer.append(stackTraces[1].getClassName()).append(".");
  return strBuffer.toString();   
 }   
 @Override  
 protected void onCreate(Bundle savedInstanceState) 
 {  
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);  
  Log.d(TAG, _FILE_LINE_FUNC_());
  //Log.d(TAG, _TIME_());
 }  
}
(java.lang.StackTraceElement[])
 [com.example.test.MainActivity._FILE_LINE_FUNC_(MainActivity.java:22), 
  com.example.test.MainActivity.onCreate(MainActivity.java:33), 
  android.app.Activity.performCreate(Activity.java:5133), 
  android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087), 
  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175), 
  android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261), 
  android.app.ActivityThread.access$600(ActivityThread.java:141), 
  android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256), 
  android.os.Handler.dispatchMessage(Handler.java:99), 
  android.os.Looper.loop(Looper.java:137), 
  android.app.ActivityThread.main(ActivityThread.java:5103), 
  java.lang.reflect.Method.invokeNative(Native Method), 
  java.lang.reflect.Method.invoke(Method.java:525), 
  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737), 
  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553), 
  dalvik.system.NativeStart.main(Native Method)]
08-21 07:47:40.083: I/test(3584): [MainActivity.java|33|com.example.test.MainActivity.onCreate]

你可能感兴趣的:(JAVA中实现C语言的_FILE_,_LINE_,_FUNC_,_TIME_)