效果展示
┌ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
│ 请求地址:"/mine/get_test/*"
├ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
│ 请求参数:{"code":["2"],"id":["U00000000001"]}
│ 返回数据:{"code":200,"msg":"","data":{"id":"20190808123606000235","CreateTime":"2019-08-08 12:36:06","IsDelete":0,"UpdateTime":"2019-08-08 12:36:06","Version":0,"Name":""}}
└ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
实现方法
添加日志拦截filter
// 添加日志拦截器
var FilterLog = func(ctx *context.Context) {
url, _ := json.Marshal(ctx.Input.Data()["RouterPattern"])
params, _ := json.Marshal(ctx.Request.Form)
outputBytes, _ := json.Marshal(ctx.Input.Data()["json"])
divider := " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"
topDivider := "┌" + divider
middleDivider := "├" + divider
bottomDivider := "└" + divider
outputStr := "\n" + topDivider + "\n│ 请求地址:" + string(url) + "\n" + middleDivider + "\n│ 请求参数:" + string(params) + "\n│ 返回数据:" + string(outputBytes) + "\n" + bottomDivider
logs.Info(outputStr)
}
// 最后一个参数必须设置为false 不然无法打印数据
beego.InsertFilter("/*", beego.FinishRouter, FilterLog, false)