idea 打印类名和方法名的快捷键,使用Idea的Live Templates模板功能轻松敲出来

我们在开发过程中,经常需要使用代码打印异常Exception的log日志, 在项目中, 我看到同事写的是这样的:

try{
}catch (Exception e) {
   logger.error("MallOrderServiceImpl>>>【mallStoreOrderList】:" + e.toString());
}

这样的话,复用性肯定不高, 每次在每个方法里面都要这样写.

那我们就来看看怎么获取类名和方法名吧:

a. 获取ClassName 类名

非静态方法中:

this.getClass().getName();

静态方法:

Thread.currentThread().getStackTrace()[1].getClassName();

b.获取当前的method方法名

Thread.currentThread().getStackTrace()[1].getMethodName();

c. 获取当前运行的行号

Thread.currentThread().getStackTrace()[1].getLineNumber();

打印日志代码:现在来试试吧:

logger.error("Class: "+this.getClass().getName()+" method: "+
Thread.currentThread().getStackTrace()[1].getMethodName() +" line: 【"+
Thread.currentThread().getStackTrace()[1].getLineNumber()+"】发生的异常是: " + e.toString());

其实不用这么麻烦,因为log4j会打印类名, 报错行数的话在e的StackTrace也会有, 所以我们就只需要把方法名和具体的异常信息打印出来就好了【推荐】:

logger.error(Thread.currentThread().getStackTrace()[1].getMethodName() +"发生的异常是: ",e);

【附一】Idea配置代码模板

每次都要写这么一长串代码肯定也不是长久之计, 那么我们就可以使用Idea的模板了。 
settings > editor > Live Templates 
这里写图片描述

这里我们创建一个分组, 取名log 
这里写图片描述

然后就是这样子的了, 把模板名, 也就是我们在敲代码的时候输入的关键字确定好,把我们的代码粘贴上去 , 选择模板的作用的语言, 这里根据需求选择就好了 
这里写图片描述

确认保存之后, 敲logger(我这里换成了error)就可以有代码提示了 
这里写图片描述

【附二】使用Idea的模板中内置的变量

我们刚刚是使用Thread.currentThread()来获取当前的类名,方法名的, 其实使用模板的时候, idea已经帮我们做到了

使用$中间写变量名$, 然后右边的Edit variables就可以点击了, 点击进去就可以选择我们需要的变量了,如图 
这里写图片描述

效果如下: 

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qb170217/article/details/81560366
今日推荐