diff options
author | Lukas Larsson <[email protected]> | 2018-05-03 10:04:55 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2018-05-03 10:04:55 +0200 |
commit | 6654d76303a1be3fc8bab368a58e2d0068fad2c0 (patch) | |
tree | f31fda4f79fb36185abe01e657dc956d96344b20 | |
parent | 7588c6f850c59ef2fa338b38ac1cf141af4f69f2 (diff) | |
parent | 30bc7fe1411fc97c733ec9d41ce57f3200a6e542 (diff) | |
download | otp-6654d76303a1be3fc8bab368a58e2d0068fad2c0.tar.gz otp-6654d76303a1be3fc8bab368a58e2d0068fad2c0.tar.bz2 otp-6654d76303a1be3fc8bab368a58e2d0068fad2c0.zip |
Merge branch 'lukas/kernel/logger-docs'
* lukas/kernel/logger-docs:
Add xmllint to travis build
kernel: Use formatter in simple logger example
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | lib/kernel/doc/src/logger_chapter.xml | 37 |
2 files changed, 9 insertions, 30 deletions
diff --git a/.travis.yml b/.travis.yml index 88a4c46f77..5499eb22c4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,7 @@ addons: - default-jdk - g++ - xsltproc + - libxml2-utils matrix: include: @@ -39,6 +40,7 @@ matrix: - ./scripts/build-otp - ./otp_build tests - make release_docs + - make xmllint - ./scripts/run-smoke-tests before_script: diff --git a/lib/kernel/doc/src/logger_chapter.xml b/lib/kernel/doc/src/logger_chapter.xml index 0bc3b37476..88dcfbe8d9 100644 --- a/lib/kernel/doc/src/logger_chapter.xml +++ b/lib/kernel/doc/src/logger_chapter.xml @@ -539,12 +539,8 @@ changing_config(logger:handler_id(),logger:config(),logger:config()) -> {ok,logg -module(myhandler). -export([log/2]). -log(#{msg:={report,R}},_) -> - io:format("~p~n",[R]); -log(#{msg:={string,S}},_) -> - io:put_chars(S); -log(#{msg:={F,A}},_) -> - io:format(F,A). +log(Log,#{formatter:={FModule,FConfig}) -> + io:put_chars(FModule:format(Log,FConfig)). </code> <p>A simple handler which prints to file could be implemented like @@ -562,18 +558,13 @@ removing_handler(Id,#{myhandler_fd:=Fd}) -> _ = file:close(Fd), ok. -log(#{msg:={report,R}},#{myhandler_fd:=Fd}) -> - io:format(Fd,"~p~n",[R]); -log(#{msg:={string,S}},#{myhandler_fd:=Fd}) -> - io:put_chars(Fd,S); -log(#{msg:={F,A}},#{myhandler_fd:=Fd}) -> - io:format(Fd,F,A). +log(Log,#{myhandler_fd:=Fd,formatter:={FModule,FConfig}}) -> + io:put_chars(Fd,FModule:format(Log,FConfig)). </code> - <p>Note that none of the above handlers have any overload + <note><p>The above handlers do not have any overload protection, and all log events are printed directly from the - client process. Neither do the handlers use the formatter or - in any way add time or other metadata to the printed events.</p> + client process.</p></note> <p>For examples of overload protection, please refer to the implementation @@ -582,14 +573,7 @@ log(#{msg:={F,A}},#{myhandler_fd:=Fd}) -> </seealso>.</p> <p>Below is a simpler example of a handler which logs through one - single process, and uses the default formatter to gain a common - look of the log events.</p> - <p>It also uses the metadata field <c>report_cb</c>, if it exists, - to print reports in the way the event issuer suggests. The - formatter will normally do this, but if the handler either has - an own default (as in this example) or if the - given <c>report_cb</c> should not be used at all, then the - handler must take care of this itself.</p> + single process.</p> <code> -module(myhandler). -export([adding_handler/2, removing_handler/1, log/2]). @@ -620,16 +604,9 @@ terminate(Reason,#{fd:=Fd}) -> _ = file:close(Fd), ok. -do_log(Fd,#{msg:={report,R}} = Log, Config) -> - Fun = maps:get(report_cb,Config,fun my_report_cb/1, - {F,A} = Fun(R), - do_log(Fd,Log#{msg=>{F,A},Config); do_log(Fd,Log,#{formatter:={FModule,FConfig}}) -> String = FModule:format(Log,FConfig), io:put_chars(Fd,String). - -my_report_cb(R) -> - {"~p",[R]}. </code> </section> |