-define(wsErr(Format, Args), error_logger:error_msg(Format, Args)). -define(wsWarn(Format, Args), error_logger:warning_msg(Format, Args)). -define(wsInfo(Format, Args), error_logger:info_msg(Format, Args)). -define(wsGLV(Key, List, Default), elli_util:getLValue(Key, List, Default)). -define(LOG_ERROR(Str), error_logger:error_msg(Str)). -define(LOG_ERROR(Format, Data), error_logger:error_msg(Format, Data)). -define(LOG_INFO(Format, Data), error_logger:info_msg(Format, Data)). -endif. -ifdef(OTP_RELEASE). -define(WITH_STACKTRACE(T, R, S), T:R:S ->). -else. -define(WITH_STACKTRACE(T, R, S), T:R -> S = erlang:get_stacktrace(),). -endif. %% Bloody useful -define(IF(Test, True, False), case Test of true -> True; false -> False end).