基於註解的日誌實現

aop-log


隨着公司業務邏輯逐漸複雜,越來越多的項目採用了前後端分離進行開發,提高了開發效率,但是無形中增加了溝通和調試成本。故開發人員在代碼中採用了打印前端或者終端傳遞過來參數信息,這樣當出現問題時能夠排查和說明問題出在何處。aop-log就是出於這樣一種使用場景而出現。總共兩種註解形式,一種是:註解加在Controller上時,能夠把所有的請求參數和返回參數日誌以json的格式輸出。二是:把註解添加在方法上時,那麼只輸出這個函數的輸入參數和返回值。

使用說明

方法註解使用方式:

在controller上添加 @EnableMethodLog,在具體方法添加 @LogMethod 例如:

/**
 * Created by clq on 2017/8/23.
 */
@Controller
@RequestMapping("/admin/public")
@EnableMethodLog
public class TestController {
    @Autowired
    private TestDaoInteface testDaoInteface;

    @RequestMapping(value = "/test", method = RequestMethod.GET)
    @ResponseBody
    @LogMethod
    public Object test(SysUser string){
        Object select = testDaoInteface.select();
       // throw new IllegalArgumentException("參數非法 ");
        return select;
    }
日誌信息:
15:57:12.483 [2025955363@qtp-98801744-0] INFO  com.log.aop.MethodAspect - {"method":"test","params":[{"account":"43523werwre","id":234}],"retValue":{"account":"admin","id":1},"time":3980}

controller註解使用方式

在controller上添加 @EnableControllerLog

@Controller
@RequestMapping("/admin/public")
@EnableControllerLog
public class TestController {......

日誌信息:
20:19:30.345 [1890318768@qtp-369351727-0] INFO  com.log.aop.ControllerAspect - {"logTag":true,"method":"test","params":[{"account":"43523werwre","id":234}],"retValue":{"account":"admin","id":1},"time":5484,"url":"/clq-web-mvc/admin/public/test"}

具體使用實例

https://github.com/strictnerd/web-mvc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章