cycle:
https://go.dev//issues/61892

default handler, copied/exported:
https://pkg.go.dev/github.com/jba/slog/handlers/loghandler

- sean


On Tue, Aug 29, 2023 at 7:53 AM Marcello H <marcel...@gmail.com> wrote:

> Yesterday, I came up with the same question and found this:
> "github.com/lmittmann/tint"
>
> (This solution still uses os.Stdout, but I think this can do what you
> need.)
>
> An example:
> logOptions := &tint.Options{
> NoColor: true,
> Level: slog.LevelError,
> TimeFormat: time.DateTime,
> }
> logHandler := tint.NewHandler(os.Stdout, logOptions)
> logger := slog.New(logHandler)
> slog.SetDefault(logger)
> slog.Info("this does not show")
> slog.Debug("this debug info does not show")
> logOptions.Level = slog.LevelInfo
> slog.Info("this is now visible")
> slog.Debug("this debug info still does not show")
> logOptions.Level = slog.LevelDebug
> slog.Info("this is still visible")
> slog.Debug("this debug info also shows")
> Op dinsdag 29 augustus 2023 om 03:00:01 UTC+2 schreef Mike Schinkel:
>
>> Hi Tamás,
>>
>> Have you actually tried that and gotten it to work? It does not compile
>> for me but this does (note method call vs. property reference):
>>
>> slog.SetDefault(slog.New(myHandler{Handler:slog.Default().Handler()}))
>>
>> However, when delegating the Handle() method it seems to cause an infinite
>> loop:
>>
>> func (m MyHandler) Handle(ctx context.Context, r slog.Record) error {
>>     return m.Handler.Handle(ctx, r)
>> }
>>
>> See https://goplay.tools/snippet/qw07m0YflLd
>>
>> I know about this because just this past weekend I was trying to write a
>> TeeHandler to output the default to the screen and JSON to a file just
>> this
>> past weekend and ran into an infinite loop problem with the default
>> handler.
>>
>> I tried my best to figure out why it needed to be structured the way it
>> was
>> in that it seems to call itself recursively. I wanted to post a question
>> to
>> this list to see if there was a workaround, or if not to see if there
>> might
>> be interest in allowing it to work, but I could not get my head around it
>> so
>> eventually gave up and just used the TextHandler instead.
>>
>> Shame though. It would be nice to be able to reuse the default handler but
>> AFACT it is not possible (though if I am wrong I would love for someone to
>> show me how to get it to work.)
>>
>> -Mike
>>
>>
>> On Monday, August 28, 2023 at 12:50:50 PM UTC-4 Tamás Gulácsi wrote:
>>
>> slog.SetDefault(slog.New(myHandler{Handler:slog.Default().Handler}))
>>
>> vl...@mailbox.org a következőt írta (2023. augusztus 28., hétfő,
>> 15:06:37 UTC+2):
>>
>> Hi,
>>
>> When reading trough the log/slog documentation, it seems one can create
>> a logger with a different handler, which is either NewTextHandler or
>> NewJSONHandler.
>>
>> Why can't I configure the defaultHandler? Let's say I want my logger to
>> behave exactly like the defaultHandler, but output to a logfile or
>> Stdout instead.
>>
>> The defaultHandler's output is different compared to the NewTextHandler:
>>
>> slog.Info("ok"), gives me:
>>
>> INFO ok
>>
>> The NextTextHandler gives me:
>>
>> level=INFO msg="ok"
>>
>>
>> Regards,
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/df136f1e-0283-46fa-a0b7-ce17a0722fd9n%40googlegroups.com
> <https://groups.google.com/d/msgid/golang-nuts/df136f1e-0283-46fa-a0b7-ce17a0722fd9n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAGabyPo9NZJBf%3Dj-W_8tUS%3DqkmwHRWVpjCbFz04jZW_P8KEOow%40mail.gmail.com.

Reply via email to