<div dir="ltr">Hello!<div><br></div><div>This issue has to do with which group_leader that the process that is writing the output has.</div><div><br></div><div>When doing `io:format` in a process that either is a shell (or is started by a shell) the group_leader is set to a process that is aware of the shell and can rewrite it when output comes its way.</div><div><br></div><div>However, since logger does not use the group_leader of the calling process to print log messages, those messages get sent directly to the `user` process which has no notion of whether a shell is actually running or not, so it cannot rewrite the output.</div><div><br></div><div>It is not only logger that has this problem, if you do an `io:format` in a process started as part of an application hierarchy you will see the same behaviour. (or by doing `spawn(fun F() -> timer:sleep(1000), io:format(user,"hello hello~n",[]), F() end)`)</div><div><br></div><div>I'm not sure how easy it is to do anything about this, as it would require different parts of the group_leader hierarchy to interact in ways that I do not think it does today.</div><div><br></div><div>A possibly short-term solution for you might be hitting "ctrl-l" (ctrl and non-capital L) when the situation happens. That should rewrite the current line so that you can see what you are doing.</div><div><br></div><div>Lukas</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 7, 2021 at 9:21 PM Brett Hemes <<a href="mailto:brhemes@mmm.com">brhemes@mmm.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US" style="overflow-wrap: break-word;">
<div class="gmail-m_792324745198008927WordSection1">
<p class="MsoNormal">While developing I often use console prints as debugging/verification tools.  In the past I have used io:format for this purpose but I would like to use the new OTP logger to do this and then be able to filter based on severity and/or send
 them to a file instead of the console as the project matures.  However, I am having trouble currently preventing logger’s output from destroying my console interactivity.  I have logger setup to use the console for output but **the logging prints output AT
 the current cursor position and thus destroy any input-in-progress** making interaction during busy logging near impossible.  In contrast, using io:format performs as desired where the output happens (and scrolls) right ABOVE the cursor line (i.e., without
 destroying the prompt).  Is this known behavior and/or is there any way to fix it (e.g., with some sys.config settings)?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">For example,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">With io:format:<u></u><u></u></p>
<p class="MsoNormal">    37> some_intput.<u></u><u></u></p>
<p class="MsoNormal">    some_info_i_would_like_to_display<u></u><u></u></p>
<p class="MsoNormal">    some_more_info<u></u><u></u></p>
<p class="MsoNormal">    info_etc<u></u><u></u></p>
<p class="MsoNormal">    38> my-next-input.<enter><u></u><u></u></p>
<p class="MsoNormal">    39> <enter><u></u><u></u></p>
<p class="MsoNormal">    39> <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">With logger:<u></u><u></u></p>
<p class="MsoNormal">    37> some_input.<u></u><u></u></p>
<p class="MsoNormal">    38> some_info_i_would_like_to_display<u></u><u></u></p>
<p class="MsoNormal">    my-nexsome_more_info<u></u><u></u></p>
<p class="MsoNormal">    t-input.<enter><u></u><u></u></p>
<p class="MsoNormal">    <u></u><u></u></p>
<p class="MsoNormal">    39> info_etc<enter><u></u><u></u></p>
<p class="MsoNormal">    <u></u><u></u></p>
<p class="MsoNormal">    39> <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I would very much like to figure this out.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
<p class="MsoNormal">Brett<u></u><u></u></p>
</div>
</div>

</blockquote></div>