FactomProject / factomd

Factom Daemon
https://www.factomprotocol.org/
Other
201 stars 92 forks source link

Rework logging #1036

Closed PaulBernier closed 3 years ago

PaulBernier commented 4 years ago

After Wax release there are 3 logging systems:

This needs to be simplified/unified.

WhoSoup commented 4 years ago

I looked at logger benchmarks and there are some interesting alternatives, such as ZeroLog and ZAP.

Logrus usually looks pretty bad in benchmarks such as http://hackemist.com/logbench/, however there is one interesting benchmark stat: https://github.com/imkira/go-loggers-bench

If you look at "TextNegative", aka the performance of logging for items that are disabled, logrus comes out in top. This is the situation for most of factomd's logging where loglvl=warn and it suppresses all info/debug messages. That's not the case for JSON logging, however, only text.

If we switch to JSON logging, I think standardizing everything to zerolog/zap might make sense.

The biggest reason not to would be the existing log file analysis tools and things like the ELK stash setup. The person with the most experience to ask there would be @factom-clay.