logs: add an audit log for API calls with unit tests

resolves #178
This commit is contained in:
Roxana Nemulescu
2021-05-25 11:38:21 +03:00
committed by Ramkumar Chinchani
parent ea717649c8
commit 97628e69c9
6 changed files with 500 additions and 4 deletions
+18 -1
View File
@@ -26,11 +26,24 @@ type Controller struct {
Router *mux.Router
StoreController storage.StoreController
Log log.Logger
Audit *log.Logger
Server *http.Server
}
func NewController(config *Config) *Controller {
return &Controller{Config: config, Log: log.NewLogger(config.Log.Level, config.Log.Output)}
var controller Controller
logger := log.NewLogger(config.Log.Level, config.Log.Output)
controller.Config = config
controller.Log = logger
if config.Log.Audit != "" {
audit := log.NewAuditLogger(config.Log.Level, config.Log.Audit)
controller.Audit = audit
}
return &controller
}
func DefaultHeaders() mux.MiddlewareFunc {
@@ -62,6 +75,10 @@ func (c *Controller) Run() error {
handlers.RecoveryHandler(handlers.RecoveryLogger(c.Log),
handlers.PrintRecoveryStack(false)))
if c.Audit != nil {
engine.Use(log.SessionAuditLogger(c.Audit))
}
c.Router = engine
c.Router.UseEncodedPath()