ahmednawras / log4erl Goto Github PK
View Code? Open in Web Editor NEWA logger for erlang in the spirit of Log4J.
Home Page: http://code.google.com/p/log4erl/
License: Other
A logger for erlang in the spirit of Log4J.
Home Page: http://code.google.com/p/log4erl/
License: Other
I can NOT get log4erl to compile and it's not giving me good errors....
./rebar -j1 -v compile DEBUG: Rebar location: "/root/ecoinpool/deps/log4erl/rebar" DEBUG: Entering /root/ecoinpool/deps/log4erl DEBUG: is_app_available, looking for App mochiweb with Path "/root/ecoinpool/deps/log4erl/deps/mochiweb" DEBUG: vcs_vsn: Unknown VCS atom in vsn field: "2.5.0" INFO: Looking for mochiweb-.* ; found mochiweb-2.5.0 at /root/ecoinpool/deps/log4erl/deps/mochiweb DEBUG: Available deps: [{dep,"/root/ecoinpool/deps/log4erl/deps/mochiweb", mochiweb,".*", {git,"git://github.com/mochi/mochiweb.git", "master"}}] DEBUG: Missing deps : [] DEBUG: is_app_available, looking for App mochiweb with Path "/root/ecoinpool/deps/log4erl/deps/mochiweb" DEBUG: vcs_vsn: Unknown VCS atom in vsn field: "2.5.0" INFO: Looking for mochiweb-.* ; found mochiweb-2.5.0 at /root/ecoinpool/deps/log4erl/deps/mochiweb DEBUG: Predirs: ["/root/ecoinpool/deps/log4erl/deps/mochiweb"] DEBUG: Entering /root/ecoinpool/deps/log4erl/deps/mochiweb DEBUG: Available deps: [] DEBUG: Missing deps : [] DEBUG: Predirs: [] ==> mochiweb (compile) DEBUG: Matched required ERTS version: 5.8.5 -> .* DEBUG: Matched required OTP release: R14B04 -> .* DEBUG: erl_opts [debug_info,debug_info] DEBUG: Starting 1 compile worker(s) INFO: Skipped src/reloader.erl INFO: Skipped src/mochiweb_util.erl INFO: Skipped src/mochiweb_socket_server.erl INFO: Skipped src/mochiweb_socket.erl INFO: Skipped src/mochiweb_session.erl INFO: Skipped src/mochiweb_response.erl INFO: Skipped src/mochiweb_request_tests.erl INFO: Skipped src/mochiweb_request.erl INFO: Skipped src/mochiweb_multipart.erl INFO: Skipped src/mochiweb_mime.erl INFO: Skipped src/mochiweb_io.erl INFO: Skipped src/mochiweb_http.erl INFO: Skipped src/mochiweb_html.erl INFO: Skipped src/mochiweb_headers.erl INFO: Skipped src/mochiweb_echo.erl INFO: Skipped src/mochiweb_cover.erl INFO: Skipped src/mochiweb_cookies.erl INFO: Skipped src/mochiweb_charref.erl INFO: Skipped src/mochiweb_base64url.erl INFO: Skipped src/mochiweb_acceptor.erl INFO: Skipped src/mochiweb.erl INFO: Skipped src/mochiutf8.erl INFO: Skipped src/mochitemp.erl INFO: Skipped src/mochinum.erl INFO: Skipped src/mochilogfile2.erl INFO: Skipped src/mochilists.erl INFO: Skipped src/mochijson2.erl INFO: Skipped src/mochijson.erl INFO: Skipped src/mochihex.erl INFO: Skipped src/mochiglobal.erl INFO: Skipped src/mochifmt_std.erl INFO: Skipped src/mochifmt_records.erl INFO: Skipped src/mochifmt.erl DEBUG: Worker exited cleanly INFO: No app_vars_file defined. DEBUG: vcs_vsn: Unknown VCS atom in vsn field: "2.5.0" DEBUG: Postdirs: [] ==> log4erl (compile) DEBUG: Matched required ERTS version: 5.8.5 -> .* DEBUG: Matched required OTP release: R14B04 -> .* DEBUG: is_app_available, looking for App mochiweb with Path "/root/ecoinpool/deps/log4erl/deps/mochiweb" DEBUG: vcs_vsn: Unknown VCS atom in vsn field: "2.5.0" INFO: Looking for mochiweb-.* ; found mochiweb-2.5.0 at /root/ecoinpool/deps/log4erl/deps/mochiweb DEBUG: Starting 1 compile worker(s) DEBUG: Worker compilation failed: [{error, {'EXIT', {undef, [{leex,file, ["src/log4erl_lex.xrl", [{scannerfile,"src/log4erl_lex.erl"}, {return,true}]]}, {rebar_erlc_compiler,compile_xrl_yrl,4}, {rebar_base_compiler,compile,3}, {rebar_base_compiler,compile_worker, 3}]}}}, {source,"src/log4erl_lex.xrl"}]
Same error happens on R14.
cube19:0$ erl
Erlang R13B (erts-5.7.1) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
Eshell V5.7.1 (abort with ^G)
1> log4erl:debug("2").
{error,no_such_logger}
2> application:start(log4erl).
ok
3> log4erl:conf("my_app/log4erl.conf").
ok
4> log4erl:debug("hello").
ok
5> log4erl:debug("no ~ like").
ok
=ERROR REPORT==== 6-Mar-2011::21:31:01 ===
** gen_event handler {file_appender,file} crashed.
** Was installed in default_logger
** Last event was: {log,{log,debug,"no ~ like",[],
{{2011,3,6},{21,31,1}},
577648}}
** When handler state == {file_appender,"my_app/rsrc/logs","my_app",
{file_descriptor,prim_file,{#Port<0.4881>,32}},
0,
{log_type,size,5000000,undefined},
10,"log",debug,
[91,level,93,32,iso_format,32,log,new_line]}
** Reason == {badarg,[{io_lib,format,["no ~ like",[]]},
{lists,map,2},
{lists,map,2},
{file_appender,do_log,2},
{file_appender,handle_event,2},
{gen_event,server_update,4},
{gen_event,server_notify,4},
{gen_event,handle_msg,5}]}
=ERROR REPORT==== 6-Mar-2011::21:31:01 ===
** Generic server <0.642.0> terminating
** Last message in was {gen_event_EXIT,
{file_appender,file},
{'EXIT',
{badarg,
[{io_lib,format,["no ~ like",[]]},
{lists,map,2},
{lists,map,2},
{file_appender,do_log,2},
{file_appender,handle_event,2},
{gen_event,server_update,4},
{gen_event,server_notify,4},
{gen_event,handle_msg,5}]}}}
** When Server state == [{appender,file_appender,file}]
** Reason for termination ==
** {appender_died,{'EXIT',{badarg,[{io_lib,format,["no ~ like",[]]},
{lists,map,2},
{lists,map,2},
{file_appender,do_log,2},
{file_appender,handle_event,2},
{gen_event,server_update,4},
{gen_event,server_notify,4},
{gen_event,handle_msg,5}]}}}
change rebar config to depend on mochiweb branch/main is optional
{deps, [
{mochiweb, ".*", {git, "https://github.com/mochi/mochiweb.git", {branch, "main"}}}
]
}.
Haven't you met such a problem?
Is it possible to include a working example for syslog appender, with sample conf for syslog as well? it is not simple to set up such that it shows up in the system,. that will at least give developer who is not sysadmin some pointers.
thanks
Hi,
We have following section in config:
logger benchmark_logger{
file_appender benchmark_appender{
dir = "log/",
level = info,
file = benchmark,
type = size,
max = 10000,
%max = 5,
suffix = log,
rotation = 9999999,
format = '[%d %T] %l%n'
}
During writting to this log we have only one file in log/ directory also log4erl:info/2 is hanging very long time.
file_appender.erl
rotate(#file_appender{fd = Fd, dir=Dir, file_name=Fn, counter=Cntr, rotation=Rot, suffix=Suf, log_type=Ltype, level=Level, format=Format} = _S) ->
file:close(Fd),
?LOG("Starting rotation~n"),
rotate_file(Dir ++ "/" ++ Fn, Rot - 1, Suf),
Src = Dir ++ "/" ++ Fn ++ "." ++ Suf,
{ok ,Fd2} = file:open(Src, ?FILE_OPTIONS_ROTATE),
State2 = #file_appender{dir = Dir, file_name = Fn, fd = Fd2, counter=Cntr, log_type = Ltype, rotation = Rot, suffix=Suf, level=Level, format=Format},
{ok, State2}.
rotate_file(FileBase, Index, Suffix) when Index > 0 ->
file:rename(FileBase ++ "_" ++ integer_to_list(Index) ++ "." ++ Suffix,
FileBase ++ "_" ++ integer_to_list(Index + 1) ++ "." ++ Suffix),
rotate_file(FileBase, Index - 1, Suffix);
rotate_file(FileBase, _Index, Suffix) ->
file:rename(FileBase ++ "." ++ Suffix, FileBase ++ "_1." ++ Suffix).
As you can see in rotate_file/3 function we try check file via file:rename many times (9999999), even if file not existed.
Hi there,
I relaized that user deifnied log levels are not written. Is it known issue ?
I'm usng latest version (0.8.6) and trying to print custom loglevel like "dump" but it doesn't print unless I have set level set as "debug".
Thanks
I have added files, required to make debian package.
Aren't you interested in it?
http://github.com/erlyvideo/log4erl/commit/873f14d081dc790675b408d4e1a7536d9e632ac8
http://github.com/erlyvideo/log4erl/commit/65d816f7f3133417cf8798825838c2c8bc417e84
BTW, maybe you merge with http://github.com/kenpratt/log4erl fork and I will rebase my repo?
how to solve it , why need mochiweb ??
in log_manager.erl
function notify_logger
use gen_event:sync_notify(...)
it was blocked util message ahead was handled,why not use method gen_event:notify(...)
when so many messages send to defalut_logger
,the memory was cost a lot,why not use another form of message queue,like ets
cache?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.