rs / zerolog

Zero Allocation JSON Logger
MIT License
10.39k stars 566 forks source link

Add a dedicated Hook for Fatal calls #591

Open LorisFriedel opened 11 months ago

LorisFriedel commented 11 months ago

Hello!

I'm currently converting all my projects from logrus to zerolog (thank you guys for the amazing library!) and I was wondering if it would be possible to add a dedicated Hook associated to Fatal call, something that would help cleanup things properly if a Fatal call happens.

Logrus has https://github.com/sirupsen/logrus/blob/master/alt_exit.go#L74 (DeferExitHandler) and it's very handy for when the Go program has CLI interface that manipulate the terminal in such way a cleanup is needed if the program exit for example.

I know I can do it with the Hook system already, but I feel like this special use-case would:

  1. improve performances compared to setting-up a classic Hook
  2. make sense to have a dedicated hook because of the nature of the Fatal call
  3. be easier to use and setup overall for this kind of use-cases

What do you think?

roachadam commented 10 months ago

+1 for this. I'm struggling to get the zerolog hook to behave in the same manner as needed from logrus.

I can get it to work with normal logs, but using Fatal/Panic, the hooks will always execute before the write