欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-09 16:16:43
...

我们在开发过程中,经常需要使用代码打印异常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 
idea 打印类名和方法名的快捷键,使用Idea的Live Templates模板功能轻松敲出来

这里我们创建一个分组, 取名log 
idea 打印类名和方法名的快捷键,使用Idea的Live Templates模板功能轻松敲出来

然后就是这样子的了, 把模板名, 也就是我们在敲代码的时候输入的关键字确定好,把我们的代码粘贴上去 , 选择模板的作用的语言, 这里根据需求选择就好了 
idea 打印类名和方法名的快捷键,使用Idea的Live Templates模板功能轻松敲出来

确认保存之后, 敲logger(我这里换成了error)就可以有代码提示了 
idea 打印类名和方法名的快捷键,使用Idea的Live Templates模板功能轻松敲出来

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

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

使用$中间写变量名$, 然后右边的Edit variables就可以点击了, 点击进去就可以选择我们需要的变量了,如图 
idea 打印类名和方法名的快捷键,使用Idea的Live Templates模板功能轻松敲出来

效果如下: 

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