一 新建模板
二 設置代碼模板
三 設置變量
表達式是支持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);