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
这里我们创建一个分组, 取名log
然后就是这样子的了, 把模板名, 也就是我们在敲代码的时候输入的关键字确定好,把我们的代码粘贴上去 , 选择模板的作用的语言, 这里根据需求选择就好了
确认保存之后, 敲logger
(我这里换成了error)就可以有代码提示了
【附二】使用Idea的模板中内置的变量
我们刚刚是使用Thread.currentThread()
来获取当前的类名,方法名的, 其实使用模板的时候, idea已经帮我们做到了
使用$中间写变量名$
, 然后右边的Edit variables
就可以点击了, 点击进去就可以选择我们需要的变量了,如图
效果如下:
上一篇: CCF2019-12 化学方程式(模拟)
下一篇: Android开发中的MVP模式详解