We would gladly allow the formatter as an option in `capture_log`!

*José Valimhttps://dashbit.co/ <https://dashbit.co/>*


On Fri, Nov 14, 2025 at 2:25 AM Austin Ziegler <[email protected]> wrote:

> I recently did a deep dive into ExUnit.CaptureLog and found that it
> (mostly) reverted to the default formatter with no way to specify an
> alternative formatter such as LoggerJSON to be able to test certain
> advanced features like the LoggerJSON.Redactor protocol to ensure that
> fields logged are properly redacted.
>
> The (mostly) is because at work we have a formatter that's a variation of
> the default formatter and we (mostly) get the output that we expect (the
> default formatter drops any metadata that isn't a scalar; our custom
> formatter does best-effort serialization), but we didn't find a way to
> provide an entirely alternative formatter like LoggerJSON.
>
> So I copied the relevant files from the Elixir source code and created
> CaptureLogger. https://hexdocs.pm/capture_logger/CaptureLogger.html
>
> The core change is in the call handler for `:log_capture_on`:
>
> ```elixir
>     {formatter, opts} = Keyword.pop(opts, :formatter,
> Application.get_env(:capture_logger, :formatter))
>
>     {formatter_mod, formatter_config} =
>       case formatter do
>         {_, _} -> formatter
>         nil -> Logger.default_formatter(opts)
>         module when is_atom(module) -> module.new(opts)
>       end
> ```
>
> I'd be happy to contribute a similar change for future versions of Elixir,
> but CaptureLogger will work nicely for earlier versions until this gets
> released.
>
> WDYT?
>
> -a
> --
> Austin Ziegler • [email protected][email protected]
> http://www.halostatue.ca/http://twitter.com/halostatue
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion visit
> https://groups.google.com/d/msgid/elixir-lang-core/CAJ4ekQu33Bk9955ZCvmsyLChq3OKm2hH0pwcTHDwA14ckd0umg%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAJ4ekQu33Bk9955ZCvmsyLChq3OKm2hH0pwcTHDwA14ckd0umg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4%2B1k0vsX8dA7ePcXf4QcpHRqk8NPm%3DJ4PP%3DYe11zHy6dQ%40mail.gmail.com.

Reply via email to