add open/2 and open/3
This commit is contained in:
parent
ebb69cd53d
commit
9485b349c0
1 changed files with 0 additions and 95 deletions
|
@ -1,95 +0,0 @@
|
|||
%% Copyright (c) 2011 Basho Technologies, Inc. All Rights Reserved.
|
||||
%%
|
||||
%% This file is provided to you under the Apache License,
|
||||
%% Version 2.0 (the "License"); you may not use this file
|
||||
%% except in compliance with the License. You may obtain
|
||||
%% a copy of the License at
|
||||
%%
|
||||
%% http://www.apache.org/licenses/LICENSE-2.0
|
||||
%%
|
||||
%% Unless required by applicable law or agreed to in writing,
|
||||
%% software distributed under the License is distributed on an
|
||||
%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
%% KIND, either express or implied. See the License for the
|
||||
%% specific language governing permissions and limitations
|
||||
%% under the License.
|
||||
|
||||
-define(LEVELS,
|
||||
[debug, info, notice, warning, error, critical, alert, emergency, none]).
|
||||
|
||||
-define(DEBUG, 7).
|
||||
-define(INFO, 6).
|
||||
-define(NOTICE, 5).
|
||||
-define(WARNING, 4).
|
||||
-define(ERROR, 3).
|
||||
-define(CRITICAL, 2).
|
||||
-define(ALERT, 1).
|
||||
-define(EMERGENCY, 0).
|
||||
-define(LOG_NONE, -1).
|
||||
|
||||
-define(LEVEL2NUM(Level),
|
||||
case Level of
|
||||
debug -> ?DEBUG;
|
||||
info -> ?INFO;
|
||||
notice -> ?NOTICE;
|
||||
warning -> ?WARNING;
|
||||
error -> ?ERROR;
|
||||
critical -> ?CRITICAL;
|
||||
alert -> ?ALERT;
|
||||
emergency -> ?EMERGENCY
|
||||
end).
|
||||
|
||||
-define(NUM2LEVEL(Num),
|
||||
case Num of
|
||||
?DEBUG -> debug;
|
||||
?INFO -> info;
|
||||
?NOTICE -> notice;
|
||||
?WARNING -> warning;
|
||||
?ERROR -> error;
|
||||
?CRITICAL -> critical;
|
||||
?ALERT -> alert;
|
||||
?EMERGENCY -> emergency
|
||||
end).
|
||||
|
||||
-define(SHOULD_LOG(Level),
|
||||
lager_util:level_to_num(Level) =< element(1, lager_mochiglobal:get(loglevel, {?LOG_NONE, []}))).
|
||||
|
||||
-define(NOTIFY(Level, Pid, Format, Args),
|
||||
gen_event:notify(lager_event, {log, lager_util:level_to_num(Level),
|
||||
lager_util:format_time(), [io_lib:format("[~p] ", [Level]),
|
||||
io_lib:format("~p ", [Pid]), io_lib:format(Format, Args)]})).
|
||||
|
||||
%% FOR INTERNAL USE ONLY
|
||||
%% internal non-blocking logging call
|
||||
%% there's some special handing for when we try to log (usually errors) while
|
||||
%% lager is still starting.
|
||||
-ifdef(TEST).
|
||||
-define(INT_LOG(Level, Format, Args),
|
||||
case ?SHOULD_LOG(Level) of
|
||||
true ->
|
||||
?NOTIFY(Level, self(), Format, Args);
|
||||
_ ->
|
||||
ok
|
||||
end).
|
||||
-else.
|
||||
-define(INT_LOG(Level, Format, Args),
|
||||
Self = self(),
|
||||
%% do this in a spawn so we don't cause a deadlock calling gen_event:which_handlers
|
||||
%% from a gen_event handler
|
||||
spawn(fun() ->
|
||||
case catch(gen_event:which_handlers(lager_event)) of
|
||||
X when X == []; X == {'EXIT', noproc} ->
|
||||
%% there's no handlers yet or lager isn't running, try again
|
||||
%% in half a second.
|
||||
timer:sleep(500),
|
||||
?NOTIFY(Level, Self, Format, Args);
|
||||
_ ->
|
||||
case ?SHOULD_LOG(Level) of
|
||||
true ->
|
||||
?NOTIFY(Level, Self, Format, Args);
|
||||
_ ->
|
||||
ok
|
||||
end
|
||||
end
|
||||
end)).
|
||||
-endif.
|
Loading…
Reference in a new issue