kolide / fleet

A flexible control server for osquery fleets
https://kolide.com/fleet
MIT License
1.1k stars 261 forks source link

Become more consistent and flexible with logging #88

Closed marpaia closed 8 years ago

marpaia commented 8 years ago

Right now we use logrus for application logs and these can only be logged to stdout. We also use lumberjack for osquery result and status logs and these can only be logged to rotating files.

Logrus has an internesting hooks API and go-kit also has an interesting logging library.

It would be nice if all logs (osquery result logs, osquery status logs, kolide application logs, kolide alert logs, etc) could be picked and mixed and matched. For example, I might want to send one set of logs to ES, one set of logs to Kafka, one set of logs to a local rotating file and one set of logs to a syslog server. It would be nice if the kolide binary supported this level of configuration natively. Ideally, this would all happen with the same library as well.

groob commented 8 years ago

IMO, go-kit represents the state of the art in Go logging libraries.

The talk by Chris Hines on the design of the logger is worth checking out as well.

regarding configurable outputs, this thread has a good explanation with code samples of how to achieve different log destinations.

Having said that, kit/log is opinionated about certain things, like this