[erlang-questions] Simple Logging

Dmitry Kolesnikov dmkolesnikov@REDACTED
Tue Feb 4 12:26:10 CET 2014


Hello,

I think you have multiple issue here:

1. semantic of error_logger:xxx_report(…) requires a list of terms. In your case, “Error” is handles as list of integer. Probably you should do error_logger:error_report([{tag, “Error"}]) or similar.

2. erlang:halt immediately terminates the machine. It do not have any chance to flush report to error log. Just put a timeout 1 - 2 sec before halt(). 

3. erl $(ERL_FLAGS) foo.beam would not run the file. May be you should
erl $(ERL_FLAGS)
foo:start(). 

- Dmitry

On 04 Feb 2014, at 12:53, Niklas Semmler <semmler@REDACTED> wrote:

> Hi again,
> 
> sorry for the confusion previously. I did not use the +W flag. I attached a minimal example below. 
> 
> I did now use the +W flags and got surprising results. Only the first report in the start/0 function is reported. Independent of whether it is a error/warning/info_report. However it's name as appearing in "rb:list()" depend on the flag. For example
> 
> "+W w" and first line is a "error_report" -> the message is named "warning report"
> no "+W" and first line is a "info_report" -> the message is named "error report"
> 
> @Jesper: As you can see I was using the error_logger from the start. Thanks for the dbg reference though. I will read up on it.
> 
> Is there anything obvious I miss? Is there a problem in my flags and configuration file combination?
> 
> Thanks for your help so far!
> -- Niklas
> 
> 
> --- Example BEGIN ---
> start() ->
>    io:format("~s~n", [error_logger:warning_map()]),
>    error_logger:error_report("Error"),
>    error_logger:warning_report("Warning"),
>    error_logger:info_report("Info"),
>    erlang:halt().
> 
> [{sasl, [
>    {sasl_error_logger, false},
>    {errlog_type, error},
>    {error_logger_mf_dir,"./log"},
>    {error_logger_mf_maxbytes, 10485760},
>    {error_logger_mf_maxfiles, 2}
> ]}].
> 
> ERLC_FLAGS=-W
> ERL_FLAGS=-boot start_sasl -config log.config [+W w <or> i]
> 
> compile: erlc $(ERLC_FLAGS) foo.erl 
> run: erl $(ERL_FLAGS) foo.beam
> 
> log: erl $(ERL_FLAGS) -s rb start '[{report_dir,"./log/"}]'
> <Followed by "rb:show().">
> --- Example END ---
> 
> On Feb 3, 2014, at 11:06 PM, Dmitry Kolesnikov wrote:
> 
>> Hello,
>> 
>> You are looking for +W flag, e.g. erl +W i should make a trick for you.
>> 
>> +W w | i
>> Sets the mapping of warning messages for error_logger. Messages sent to the error logger using one of the warning routines can be mapped either to errors (default), warnings (+W w), or info reports (+W i). The current mapping can be retrieved using error_logger:warning_map/0. See error_logger(3) for further information.
>> 
>> 
>> However, I would still advice to use lagger. It is compatible with error_logger framework and nicely cooperates with legacy code. Long time ago, I’ve passed through your dilemma, as the result. I’ve end-up with lagger.
>> 
>> BTW, I am also confused with goldrush dependencies in lager. I guess it is used to manage flow control to std io.
>> 
>> - Dmitry
>> 
>> On 03 Feb 2014, at 23:29, Niklas Semmler <semmler@REDACTED> wrote:
>> 
>>> The code I am working on is supposed to be integrated with a bigger system later on. As far as I know the other system uses native logging.
>>> 
>>> That's why I want to avoid Lager. I would rather work out my own get_event..
>>> 
>>> -- Niklas 
>>> 
>>> On Feb 3, 2014, at 9:51 PM, Jesper Louis Andersen wrote:
>>> 
>>>> On Mon, Feb 3, 2014 at 7:20 PM, Niklas Semmler <semmler@REDACTED> wrote:
>>>> 
>>>>> PS: Lager is unfortunately not an option as I have to avoid any
>>>>> unnecessary dependencies.
>>>> 
>>>> 
>>>> You really want lager for this. What is the rationale for avoiding an
>>>> unnecessary dependency?
>>>> 
>>>> 
>>>> -- 
>>>> J.
>>> 
>>> _______________________________________________
>>> erlang-questions mailing list
>>> erlang-questions@REDACTED
>>> http://erlang.org/mailman/listinfo/erlang-questions
>> 
> 




More information about the erlang-questions mailing list