[TASK] add log
This commit is contained in:
parent
ea2b3e03f3
commit
44f9087010
|
@ -0,0 +1,32 @@
|
|||
// Package that provides the functionality to start und initialize the logger
|
||||
package log
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
logger "github.com/Sirupsen/logrus"
|
||||
)
|
||||
|
||||
// Current logger with it's configuration
|
||||
var Log *logger.Logger
|
||||
|
||||
// Function to initiate a new logger
|
||||
func init() {
|
||||
Log = logger.New()
|
||||
// Enable fallback, if core logger
|
||||
log.SetOutput(Log.Writer())
|
||||
}
|
||||
|
||||
// Function to add the information of a http request to the log
|
||||
func HTTP(r *http.Request) *logger.Entry {
|
||||
ip := r.Header.Get("X-Forwarded-For")
|
||||
if len(ip) <= 1 {
|
||||
ip = r.RemoteAddr
|
||||
}
|
||||
return Log.WithFields(logger.Fields{
|
||||
"remote": ip,
|
||||
"method": r.Method,
|
||||
"url": r.URL.RequestURI(),
|
||||
})
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
// Package that provides the functionality to start und initialize the logger
|
||||
package log
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// Function to test the logging
|
||||
func TestLog(t *testing.T) {
|
||||
assertion := assert.New(t)
|
||||
|
||||
req, _ := http.NewRequest("GET", "https://google.com/lola/duda?q=wasd", nil)
|
||||
log := HTTP(req)
|
||||
_, ok := log.Data["remote"]
|
||||
|
||||
assertion.NotNil(ok, "remote address not set in logger")
|
||||
assertion.Equal("GET", log.Data["method"], "method not set in logger")
|
||||
assertion.Equal("/lola/duda?q=wasd", log.Data["url"], "path not set in logger")
|
||||
}
|
Loading…
Reference in New Issue