FreeBSD Bugzilla – Attachment 96887 Details for
Bug 135593
net-im/ejabberd: ram_file_io_server makes ejabberdevel to not run with R13B_logl
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
patch-src-ejabberd_loglevel.erl
patch-src-ejabberd_loglevel.erl (text/plain; x-mac-type="0"; x-mac-creator="0"), 2.29 KB, created by
gwright
on 2009-07-10 07:52:24 UTC
(
hide
)
Description:
patch-src-ejabberd_loglevel.erl
Filename:
MIME Type:
Creator:
gwright
Created:
2009-07-10 07:52:24 UTC
Size:
2.29 KB
patch
obsolete
>--- ejabberd_loglevel.erl.sav 2009-07-08 13:05:17.000000000 -0400 >+++ ejabberd_loglevel.erl 2009-07-08 13:05:43.000000000 -0400 >@@ -38,51 +38,30 @@ > -define(LOGMODULE, "error_logger"). > > %% Error levels: >-%% 0 -> No log >-%% 1 -> Critical >-%% 2 -> Error >-%% 3 -> Warning >-%% 4 -> Info >-%% 5 -> Debug >+-define(LOG_LEVELS,[ {0, no_log, "No log"} >+ ,{1, critical, "Critical"} >+ ,{2, error, "Error"} >+ ,{3, warning, "Warning"} >+ ,{4, info, "Info"} >+ ,{5, debug, "Debug"} >+ ]). >+ >+set(LogLevel) when is_atom(LogLevel) -> >+ set(level_to_integer(LogLevel)); > set(Loglevel) when is_integer(Loglevel) -> >- Forms = compile_string(?LOGMODULE, ejabberd_logger_src(Loglevel)), >- load_logger(Forms, ?LOGMODULE, Loglevel); >+ try >+ {Mod,Code} = dynamic_compile:from_string(ejabberd_logger_src(Loglevel)), >+ code:load_binary(Mod, ?LOGMODULE ++ ".erl", Code) >+ catch >+ Type:Error -> ?CRITICAL_MSG("Error compiling logger (~p): ~p~n", [Type, Error]) >+ end; > set(_) -> > exit("Loglevel must be an integer"). >- >-%% -------------------------------------------------------------- >-%% Compile a string into a module and returns the binary >-compile_string(Mod, Str) -> >- Fname = Mod ++ ".erl", >- {ok, Fd} = open_ram_file(Fname), >- file:write(Fd, Str), >- file:position(Fd, 0), >- case epp_dodger:parse(Fd) of >- {ok, Tree} -> >- Forms = revert_tree(Tree), >- close_ram_file(Fd), >- Forms; >- Error -> >- close_ram_file(Fd), >- Error >- end. >- >-open_ram_file(Fname) -> >- ram_file_io_server:start(self(), Fname, [read,write]). >- >-close_ram_file(Fd) -> >- file:close(Fd). >- >-revert_tree(Tree) -> >- [erl_syntax:revert(T) || T <- Tree]. >- >-load_logger(Forms, Mod, Loglevel) -> >- Fname = Mod ++ ".erl", >- case compile:forms(Forms, [binary, {d,'LOGLEVEL',Loglevel}]) of >- {ok, M, Bin} -> >- code:load_binary(M, Fname, Bin); >- Error -> >- ?CRITICAL_MSG("Error ~p~n", [Error]) >+ >+level_to_integer(Level) -> >+ case lists:keyfind(Level, 2, ?LOG_LEVELS) of >+ {Int, Level, _Desc} -> Int; >+ _ -> erlang:error({no_such_loglevel, Level}) > end. > > %% --------------------------------------------------------------
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 135593
:
96886
| 96887 |
96888
|
96889
|
96890