Erlang (OTP 21+) Logger Console Output Question (Garbled Prompt)

Nicolas Martyanoff khaelin@REDACTED
Mon May 10 10:13:20 CEST 2021

Stanislav Ledenev <s.ledenev@REDACTED> writes:

>> If I'm not mistaken, this is also the reason eunit tests do not capture
>> logger messages, making it hard to understand what was logged by a
>> specific failing test.
> What do you mean by "eunit doesn't capture logger messages"?
> Is it some specific case?
> I have had some problems with capturing messages but it was my fault -
> I misspointed the config file with logger_level set higher than the
> category of my messages.
> And another issue was with common_test.
> You must enable verbose output to be able to see messages.

Eunit introduces its own group leader for each test case, capturing
printed messages, and displaying them in a small section associated with
each failing test. This is really useful when trying to understand why a
specific test failed.

But logger messages are not directly sent to the group leader, therefore
they are not captured by eunit and are logged in all cases. This is a
problem because it is now really hard to understand what was logged
(especially which errors) in each failing test.

This is clearly a design issue: eunit was not taken into account when
logger was introduced.

I tried to work around it with custom log handlers in the past, but
could never make it work, and I remember talking about it on #erlang,
but the conclusion was that it was not fixable without patching eunit
and/or logger.

Nicolas Martyanoff

More information about the erlang-questions mailing list