一 新建模板
二 设置代码模板
三 设置变量
表达式是支持groovy脚本的,所以这里写一个groovy脚本,生成给定格式的日志字符串,methodParameters()是idea内置的函数,获取方法参数名字的数组:
[param1,param2] 所以先把[ ]去掉,因为这里是一个groovy字符串,本来就是正则字符串,里面是正则转化成脚本后还是正则
所以需要两次转化,\代表\,字符串里转义[ ]的话需要[和 ], 一个在字符串里需要两个\,所以就是四个
然后转成集合,拼接就行了,脚本:
groovyScript(" def result=''; def params="${_1}".replaceAll('[\\[|\\]|\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) { result+='"'+params[i] +':"+'+params[i]+ ((i < params.size() - 1) ? '+","+' : '') }; return result", methodParameters())
四 测试
方法里面直接打ld,按tab就可以生成了:
注意: 集合的话需要重写toString方法,也可以使用JSon》toString
如果是用Strin.format那种,可以定义三个参数:
log.info("$desc$,$params1$",$params2$);
parmas1:
groovyScript(" def result=''; def params="${_1}".replaceAll('[\\[|\\]|\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) { result+=''+params[i]+':{}'+ ((i < params.size() - 1) ? ',' : '') }; return result", methodParameters())
params2:
groovyScript(" def result=''; def params="${_1}".replaceAll('[\\[|\\]|\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) { result+=params[i]+ ((i < params.size() - 1) ? ',' : '') }; return result", methodParameters())
效果:
log.info("查询客服坐席列表,page:{},size:{},keyword:{}",page,size,keyword);