erlang各种有用的函数包括一些有用nif封装,还有一些性能测试case。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
1.4 KiB

5 years ago
  1. -define(log_opt_module(__MODULE), {module, __MODULE}).
  2. -define(log_opt_level(__Level), {level, __MODULE}).
  3. -define(log_opt_process(__Process), {process, __Process}).
  4. -define(log_opt_output(__Output), {process, __Output}).
  5. -define(log_init(__OPTIONS), fun() ->
  6. lists:map(fun({Function, Argvs}) ->
  7. com_log:Function(Argvs)
  8. end, __OPTIONS)
  9. end()).
  10. -define(level_debug, 1).
  11. -define(level_info, 2).
  12. -define(level_error, 3).
  13. -define(LOG_DEBUG(__DATA), ?LAGER_DEBUG("~p", [__DATA])).
  14. -define(LOG_DEBUG(__FMT, __DATA), ?LAGER_DEBUG("common", __FMT, __DATA)).
  15. -define(LOG_DEBUG(__FunModule, __FMT, __DATA), com_log:log_module(__FunModule, ?level_debug, io_lib:format("[DEBUG] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [self(), ?MODULE, ?LINE] ++ __DATA))).
  16. -define(LOG_INFO(__DATA), ?LOG_INFO("~p", [__DATA])).
  17. -define(LOG_INFO(__FMT, __DATA), ?LOG_INFO("common", __FMT, __DATA)).
  18. -define(LOG_INFO(__FunModule, __FMT, __DATA), com_log:log_module(__FunModule, ?level_info, io_lib:format("[INFO] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [self(), ?MODULE, ?LINE] ++ __DATA))).
  19. -define(LOG_ERROR(__DATA), ?LOG_ERROR("~p", [__DATA])).
  20. -define(LOG_ERROR(__FMT, __DATA), ?LOG_ERROR("common", __FMT, __DATA)).
  21. -define(LOG_ERROR(__FunModule, __FMT, __DATA), com_log:log_module(__FunModule, ?level_error, io_lib:format("[ERROR] S(~p) M(~p) L(~p)~n" ++ __FMT ++ "~n", [self(), ?MODULE, ?LINE] ++ __DATA))).