Erlang で LOG マクロ

-define(L(), error_logger:info_msg("{~p ~p,~p}:~n", [self(), ?MODULE,?LINE])).
-define(LOG(X), error_logger:info_msg("{~p ~p,~p}: ~s = ~p~n", [self(), ?MODULE,?LINE,??X,X])).
-define(LOGF(X, Data), error_logger:info_msg("{~p ~p,~p}: "++X++"~n" , [self(), ?MODULE,?LINE] ++ Data)).

もっと良いものがあるだろうけどとりあえずこれで。手続き名もマクロで取れると最高だな。
self() は必須。どこの誰が実行されているか把握しないとはまる。