封装自定义log打印日志的工具类

获取当点的类/路径/包名

通过服务的方式打印Activity类名

主要用到的是下面的方法。

 ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        RunningTaskInfo info = manager.getRunningTasks(1).get(0);
    String shortClassName = info.topActivity.getShortClassName();    //类名
        String className = info.topActivity.getClassName();              //完整类名
        String packageName = info.topActivity.getPackageName();          //包名
    或者
//new 一个异常类
        Exception exception = new Exception();
        //调用者上级类名
        Log.i(TAG, "Class0———>:" + exception.getStackTrace()[0].getClassName());
        //调用者上级的上级类名
        Log.i(TAG, "Class1———>:" + exception.getStackTrace()[1].getClassName());
        //调用者上级的方法名
        Log.i(TAG, "MethodName0———>:" + exception.getStackTrace()[0].getMethodName());
        //调用者上级的上级方法名
        Log.i(TAG, "MethodName1———>:" + exception.getStackTrace()[1].getMethodName());
        //当前方法行号
        Log.i(TAG, "line0———>:" + exception.getStackTrace()[0].getLineNumber());
        //调用方法行号
        Log.i(TAG, "line1———>:" + exception.getStackTrace()[1].getLineNumber());

我写的如下(TAG=123321):

public class LogUtils {
   public static final String TAG="123321";
   private static LogUtils utils;
   //完整的类名
   private static String class_name;
   //完整的包名
   private static String package_name;

   public static LogUtils getInstance(){
             if( context!=null) {
           ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
           List<ActivityManager.RunningTaskInfo> runningTasks = manager.getRunningTasks(1);
           ActivityManager.RunningTaskInfo info = runningTasks.get(0);
           ComponentName topActivity = info.topActivity;
           class_name = topActivity.getClassName();
           package_name=topActivity.getPackageName();
       }else{
           Log.e(TAG, "com.trump.live.util.LogUtils: getPath\t\t上下文不能为空。" );
       }
       return utils;
   }
   public static LogUtils printLog(String message){
       if(class_name.isEmpty()||package_name.isEmpty()){
           return null;
       }else {
           Log.i(TAG, "className-->"+class_name+"\n"+
                   "packageName-->"+package_name+"\n"+
                   "message-->"+message);
           return utils;
       }
//        return null;
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值