<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="329798" data-post-id="329798">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dwark" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dwark/120/30559_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dwark
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>There have been indeed some <a href="https://github.com/elixir-lang/elixir/blob/v1.15.8/CHANGELOG.md#logger-3" rel="noopener nofollow ugc">changes</a> to Elixir’s Logger since v1.15.0:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[Logger] The :console configuration has been deprecated in favor of :default_formatter
[Logger] The :backends configuration has been deprecated in favor of Logger.add_handlers/1
</code></pre>
<p>Logger now uses <code>:logger</code>’s default handler and refers to the <a href="https://www.erlang.org/doc/apps/kernel/logger_std_h" rel="nofollow">logger_std_h</a> documentation, which states:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">type = io:standard_io/0 | io:standard_error/0 | file | {device, io:device/0 } - Specifies the log destination.

The value is set when the handler is added, and it cannot be changed in runtime.

Defaults to standard_io, unless parameter file is given, in which case it defaults to file.
</code></pre>
<p>So once the <code>require Logger</code>  is excuted in the one-liner, the default handler will have been added and its device cannot be changed during runtime.  And looking at the actual<br>
configuration of the default handler:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">elixir -e 'require Logger; :logger.get_handler_config(:default) |&gt; IO.inspect(); Logger.error("why stdout?")' 2&gt;scr/delme
{:ok,
 %{
   id: :default,
   module: :logger_std_h,
   config: %{
     type: :standard_io,
     burst_limit_enable: true,
     drop_mode_qlen: 200,
     flush_qlen: 1000,
     sync_mode_qlen: 10,
     overload_kill_restart_after: 5000,
     burst_limit_max_count: 500,
     burst_limit_window_time: 1000,
     overload_kill_enable: false,
     overload_kill_mem_size: 3000000,
     overload_kill_qlen: 20000,
     filesync_repeat_interval: :no_repeat
   },
   level: :all,
   filters: [remote_gl: {&amp;:logger_filters.remote_gl/2, :stop}],
   filter_default: :log,
   formatter: {Logger.Formatter,
    %Logger.Formatter{
      template: ["\n", :time, " ", :metadata, "[", :level, "] ", :message, "\n"],
      truncate: 8096,
      metadata: [],
      colors: %{
        error: :red,
        enabled: true,
        info: :normal,
        warning: :yellow,
        debug: :cyan,
        notice: :normal,
        alert: :red,
        critical: :red,
        emergency: :red
      },
      utc_log?: false
    }}
 }}

08:53:01.187 [error] why stdout?
</code></pre>
<p>it is indeed using stdio.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329798" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-329798" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329798"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="329802" data-post-id="329802">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="D4no0" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/D4no0/120/33624_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  D4no0
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>So I suppose using <code>stderr</code> only for <code>Logger.error</code> is out of the question?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329802" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-329802" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329802"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="329816" data-post-id="329816">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="hauleth" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hauleth/120/18942_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  hauleth
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It is possible. You just need to add additional Logger backend that will filter messages to level <code>:error</code> or higher and output to <code>stderr</code>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329816" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-329816" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329816"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="329830" data-post-id="329830">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dwark" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dwark/120/30559_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dwark
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The whole Logger business is somewhat of Dark Magic to me, but like <a class="mention" href="/u/hauleth" rel="nofollow">@hauleth</a> said, it looks like you would need to:</p>
<ul>
<li>filter out level <code>:error</code> for the default_handler (which logs to stdio by default)</li>
<li>add a second handler, filter out all but level <code>:error</code> and config it to log to stderr</li>
</ul>
<p>(assuming the default handler is not logging to file).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329830" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-329830" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329830"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="329835" data-post-id="329835">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="clsource" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/clsource/120/34007_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  clsource
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Some erlang can be used as well I think for logging to stderr.</p>
<pre><code class="lang-plaintext">elixir -e ':io.format(:standard_error, "my error", [])'
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329835" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-329835" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329835"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="329836" data-post-id="329836">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="slouchpie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/slouchpie/120/34819_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  slouchpie
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>something got lost in translation here</p>
<p>This is how it appears on my screen:</p>
<p><img src="https://forum.elixirforum.com/uploads/default/original/3X/1/6/16079f4e027bf5c0382be0faf2aaf16d64fc23c5.png" alt="image" data-base62-sha1="38SPLOdFp4SId84ReRB0JoIZjKZ" width="353" height="36"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329836" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-329836" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329836"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="329839" data-post-id="329839">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="NobbZ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/NobbZ/120/27235_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  NobbZ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I took the freedom to edit some code fences in.</p>
<p>As this:</p>
<pre data-code-wrap="md"><code class="lang-md">some text [ ]
</code></pre>
<p>renders into</p>
<hr>
<p>some text <span class="chcklst-box fa fa-square-o"></span></p>
<hr>
<p>Where the <span class="chcklst-box fa fa-square-o"></span> is a clickable checkbox.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329839" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-329839" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329839"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="329840" data-post-id="329840">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="slouchpie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/slouchpie/120/34819_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  slouchpie
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>And the doublequotes turn into “fancy-pants doublequotes” (to use the technical term).<br>
<img src="https://forum.elixirforum.com/images/emoji/apple/upside_down_face.png?v=15" title=":upside_down_face:" class="emoji only-emoji" alt=":upside_down_face:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329840" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-329840" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329840"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="329853" data-post-id="329853">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dwark" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dwark/120/30559_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dwark
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>True, there are more ways that lead to Rome than one.  But OP’s question was specifically about the route employing the facilities offered by Elixir’s Logger.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329853" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-329853" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329853"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="329866" data-post-id="329866">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Koszal" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Koszal
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dwark" data-post="12" data-topic="63821">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dwark/48/30559_2.png" class="avatar"> dwark:</div>
<blockquote>
<p>There have been indeed some <a href="https://github.com/elixir-lang/elixir/blob/v1.15.8/CHANGELOG.md#logger-3" rel="noopener nofollow ugc">changes</a> to Elixir’s Logger since v1.15.0:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">[Logger] The :console configuration has been deprecated in favor of :default_formatter
[Logger] The :backends configuration has been deprecated in favor of Logger.add_handlers/1
</code></pre>
</blockquote>
</aside>
<p>Ah - I did see this tidbit - but then went back to Elixir doc.</p>
<p>And I did not know about <code>:logger.get_handler_config(:default)</code></p>
<p>Now I hope I can figure it out.</p>
<p>Thank you very much!</p>
<p>EDIT</p>
<p>The following does work for me (Elixir 1.15.7 (compiled with Erlang/OTP 26):</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">{:ok, handler_config} = :logger.get_handler_config(:default)

updated_config = 
  handler_config
  |&gt; Map.update!(:config, fn config -&gt;
    Map.put(config, :type, :standard_error)
  end)

:ok = :logger.remove_handler(:default)
:ok = :logger.add_handler(:default, :logger_std_h, updated_config)

require Logger
Logger.error("Hello error on stderr")
Logger.debug("Hello debug on stderr")
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="329866" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-to-log-to-stderr/63821/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-329866" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="329866"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/63821/load_more?page=3">Load more posts (1 remaining)</a>
</div></template></turbo-stream>