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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yeah I think that’ll work! But I was thinking about going further and support attaching multiple handlers with different configuration. Say, we want to post to different channels based on domain. We can define 2 handlers with different <code>info_channel_id</code> and create a handler filter that would only keep messages with that domain. This setup would require handler and it’s downstream code to rely on its own configuration and not reading from the global configuration.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="346909" 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/discolog-use-discord-as-a-logging-service-and-error-tracking-solution/65730/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-346909" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="346909"
                     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="346913" data-post-id="346913">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="MRdotB" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/MRdotB/120/30487_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  MRdotB
                      <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">
								<p>Regarding the logger handler, I see some improvements that could be made.</p>
<ul>
<li><strong>Add the Ability to Pass a Module Function:</strong> Allow passing a module function that receives the <code>error</code> or <code>info</code> message, enabling you to dispatch logs dynamically. The routing function would process the metadata and dispatch the log accordingly.</li>
</ul>
<p>Example:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">Logger.info("✨ New User #{customer.email} created successfully.", channel: "accounts")
Logger.info("💸 Payment of 5 € succeeded from customer `#{customer.email}`", channel: "billing")
</code></pre>
<ul>
<li>
<p><strong>Support for Occurrences:</strong> This could also be extended to handle occurrences, but it would require extra work since the current ETS table for fingerprint only supports a single Discord channel.</p>
</li>
<li>
<p><strong>Behavior for Routing:</strong> DiscoLog could ship with a <code>Behavior</code> to implement this feature. Additionally, the Discord client functions should be exposed.</p>
</li>
</ul>
<p>With these improvements, I don’t see a use case for running multiple logger handlers ?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="346913" 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/discolog-use-discord-as-a-logging-service-and-error-tracking-solution/65730/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-346913" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="346913"
                     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="346922" data-post-id="346922">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>To be clear, this is an imaginary use case, I just used it as an example meant to illustrate where configurability of the current design may come short. I have no doubt that with enough configuration options DiscoLog can cover pretty much any use case in the near future and perhaps for the time being.</p>
<p>Changes to configuration I’m talking about is for the love of the game, really. It would just be awesome if DiscoLog could <a href="https://hexdocs.pm/elixir/main/design-anti-patterns.html#using-application-configuration-for-libraries" rel="noopener nofollow ugc">play nicely</a> with existing logging and application configuration. Following up with Oban example, there is a <a href="https://github.com/oban-bg/oban/blob/4ff5d8ee348c85efc9df01c05485aadbffb48c1f/lib/oban.ex#L179-L180" rel="noopener nofollow ugc">single place</a> where Oban reads configuration and this is what unlocks independent Oban instances. As I mentioned, this isn’t <em>necessary</em> or anything, I just think it would be neat, so don’t feel pushed to agree or even consider this!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="346922" 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/discolog-use-discord-as-a-logging-service-and-error-tracking-solution/65730/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-346922" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="346922"
                     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="355012" data-post-id="355012">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="MRdotB" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/MRdotB/120/30487_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  MRdotB
                      <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">
								<p><img src="https://forum.elixirforum.com/images/emoji/apple/rocket.png?v=15" title=":rocket:" class="emoji" alt=":rocket:" loading="lazy" width="20" height="20"> <strong>v1.0.0 Released!</strong><br>
I’m excited to announce the release of <a href="https://hexdocs.pm/disco_log/getting-started.html" rel="noopener nofollow ugc">DiscoLog v1.0.0</a>! This update introduces two optional features:</p>
<ul>
<li><strong><a href="https://hexdocs.pm/disco_log/getting-started.html#presence-status" rel="noopener nofollow ugc">Presence Status</a></strong> – Allows your bot to appear online, representing your node in Discord.</li>
<li><strong><a href="https://hexdocs.pm/disco_log/getting-started.html#go-to-repo-feature" rel="noopener nofollow ugc">Go To Repo</a></strong> – Provides a direct link to GitHub (or a similar platform) to check the code where an error was triggered.</li>
</ul>
<p>Additionally, it’s now possible to use the Discord client for ad hoc usage, though examples are not yet available.</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/movie_camera.png?v=15" title=":movie_camera:" class="emoji" alt=":movie_camera:" loading="lazy" width="20" height="20"> <strong>New Demo:</strong> I’ve created a <a href="https://youtu.be/gYFN15aHP6o" rel="noopener nofollow ugc">YouTube video</a> showcasing the Presence Status and Go To Repo features</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/folded_hands.png?v=15" title=":folded_hands:" class="emoji" alt=":folded_hands:" loading="lazy" width="20" height="20"> <strong>Huge thanks to <a class="mention" href="/u/martosaur" rel="nofollow">@martosaur</a></strong> for implementing the Presence Status feature and refactoring the code to support ad hoc usage</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355012" data-batch-url="/posts/batch_likers">
                        4
                      </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/discolog-use-discord-as-a-logging-service-and-error-tracking-solution/65730/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-355012" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355012"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="355503" data-post-id="355503">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>the value this library brings is the amazing integration with Discord. not how you capture errors. so in an ideal world i would collect errors with Tower and send errors to Discord, Sentry and whatever other service.</p>
<p>But I get it. It’s easier to do a quick fully supported library than figuring out how Tower works.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355503" 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/discolog-use-discord-as-a-logging-service-and-error-tracking-solution/65730/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-355503" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355503"
                     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="355509" data-post-id="355509">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="MRdotB" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/MRdotB/120/30487_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  MRdotB
                      <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">
								<p>If you want Tower to support Discord, feel free to implement <code>tower_discord</code>. Given the overlap in functionality, integrating Tower with <code>disco_log</code> doesn’t make sense. You’re better off using Tower events with a thin Discord client. Feel free to borrow ideas from <code>disco_log</code>, especially the occurrence channel implementation.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355509" 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/discolog-use-discord-as-a-logging-service-and-error-tracking-solution/65730/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-355509" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355509"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>