io:format着实有点难受了,今天来看看宏定义的打印会不会好用点。
需求
首先我们明确需要打印的内容,每次打印我们除了需要看打印的内容,还需要啥呢?肯定要知道这行在哪里打印的吧?那把模块名和对应行数加上。有时候服务器不知道什么时候打印的,可以再把时间加上,更细粒度的可以加上打印的类型如debug、info、error等,其实这些都可以由lager插件实现,但今天不讲这个插件,只是简单实现一下需要的功能。
需要的效果和io:format对比
实现
其实很简单,只需要在公共的头文件中定义个宏变量,在变量中写好打印函数即可,使用时在对应模块导入公共头文件即可。
比如我们在common.hrl中实现
%%%-------------------------------------------------------------------
%%% @author fengshangjiong
%%% @copyright (C) 2021, <COMPANY>
%%% @doc