1.在Utils工具类里定义定义打印日志方法logParams
// 1. 由于参数不确定,所以使用Object...params可变参数
// 2. ObjectMapper的writeValueAsString可以将java对象转换为json格式
static logParams(Logger log,String method, Object...params){
ObjectMapper mapper = new ObjectMapper()
def string = "call ${method}:"
for(int i = 1;i<=params.length;i++){
string+="param${i}:${mapper.writeValueAsString(params[i-1])},"
}
log.info(string)
}
2.在controller中调用logParams方法
@ControllerLog()
String index(BaseChannelRequest baseChannel) {
try{
Utils.logParams(log, "index", baseChannel)
baseChannel.valid()
List result = channelConfigService.data(baseChannel.channelName)
render text: Response.successResponse(result) as JSON
}catch(Exception e){
log.error(e.getMessage(), e)
render text: Response.exceptionResponse(e) as JSON
}
}
控制台会打印出请求参数的日志,把请求对象转换成json打印出来
比如请求