summaryrefslogtreecommitdiffstats
path: root/app/server.go
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2018-04-27 12:49:45 -0700
committerGitHub <noreply@github.com>2018-04-27 12:49:45 -0700
commit686c2fbab7607d42183ae685a27ea3d7dce8c3f6 (patch)
tree53ed73cada57bc43f342ac10e2f842cddb095218 /app/server.go
parent2acbc77d78456d7ba76ceb687b18985d7d92f814 (diff)
downloadchat-686c2fbab7607d42183ae685a27ea3d7dce8c3f6.tar.gz
chat-686c2fbab7607d42183ae685a27ea3d7dce8c3f6.tar.bz2
chat-686c2fbab7607d42183ae685a27ea3d7dce8c3f6.zip
Structured logging (#8673)
* Implementing structured logging * Changes to en.json to allow refactor to run. * Fixing global logger * Structured logger initalization. * Add caller. * Do some log redirection. * Auto refactor * Cleaning up l4g reference and removing dependancy. * Removing junk. * Copyright headers. * Fixing tests * Revert "Changes to en.json to allow refactor to run." This reverts commit fd8249e99bcad0231e6ea65cd77c32aae9a54026. * Fixing some auto refactor strangeness and typo. * Making keys more human readable.
Diffstat (limited to 'app/server.go')
-rw-r--r--app/server.go34
1 files changed, 22 insertions, 12 deletions
diff --git a/app/server.go b/app/server.go
index e89041ebe..7d229201d 100644
--- a/app/server.go
+++ b/app/server.go
@@ -15,12 +15,12 @@ import (
"strings"
"time"
- l4g "github.com/alecthomas/log4go"
"github.com/gorilla/handlers"
"github.com/gorilla/mux"
"github.com/pkg/errors"
"golang.org/x/crypto/acme/autocert"
+ "github.com/mattermost/mattermost-server/mlog"
"github.com/mattermost/mattermost-server/model"
"github.com/mattermost/mattermost-server/store"
"github.com/mattermost/mattermost-server/utils"
@@ -50,8 +50,8 @@ type RecoveryLogger struct {
}
func (rl *RecoveryLogger) Println(i ...interface{}) {
- l4g.Error("Please check the std error output for the stack trace")
- l4g.Error(i)
+ mlog.Error("Please check the std error output for the stack trace")
+ mlog.Error(fmt.Sprint(i))
}
type CorsWrapper struct {
@@ -97,12 +97,12 @@ func redirectHTTPToHTTPS(w http.ResponseWriter, r *http.Request) {
}
func (a *App) StartServer() error {
- l4g.Info(utils.T("api.server.start_server.starting.info"))
+ mlog.Info("Starting Server...")
var handler http.Handler = &CorsWrapper{a.Config, a.Srv.Router}
if *a.Config().RateLimitSettings.Enable {
- l4g.Info(utils.T("api.server.start_server.rate.info"))
+ mlog.Info("RateLimiter is enabled")
rateLimiter, err := NewRateLimiter(&a.Config().RateLimitSettings)
if err != nil {
@@ -117,6 +117,7 @@ func (a *App) StartServer() error {
Handler: handlers.RecoveryHandler(handlers.RecoveryLogger(&RecoveryLogger{}), handlers.PrintRecoveryStack(true))(handler),
ReadTimeout: time.Duration(*a.Config().ServiceSettings.ReadTimeout) * time.Second,
WriteTimeout: time.Duration(*a.Config().ServiceSettings.WriteTimeout) * time.Second,
+ ErrorLog: a.Log.StdLog(mlog.String("source", "httpserver")),
}
addr := *a.Config().ServiceSettings.ListenAddress
@@ -135,7 +136,7 @@ func (a *App) StartServer() error {
}
a.Srv.ListenAddr = listener.Addr().(*net.TCPAddr)
- l4g.Info(utils.T("api.server.start_server.listening.info"), listener.Addr().String())
+ mlog.Info(fmt.Sprintf("Server is listening on %v", listener.Addr().String()))
// Migration from old let's encrypt library
if *a.Config().ServiceSettings.UseLetsEncrypt {
@@ -151,24 +152,33 @@ func (a *App) StartServer() error {
if *a.Config().ServiceSettings.Forward80To443 {
if host, port, err := net.SplitHostPort(addr); err != nil {
- l4g.Error("Unable to setup forwarding: " + err.Error())
+ mlog.Error("Unable to setup forwarding: " + err.Error())
} else if port != "443" {
return fmt.Errorf(utils.T("api.server.start_server.forward80to443.enabled_but_listening_on_wrong_port"), port)
} else {
httpListenAddress := net.JoinHostPort(host, "http")
if *a.Config().ServiceSettings.UseLetsEncrypt {
- go http.ListenAndServe(httpListenAddress, m.HTTPHandler(nil))
+ server := &http.Server{
+ Addr: httpListenAddress,
+ Handler: m.HTTPHandler(nil),
+ ErrorLog: a.Log.StdLog(mlog.String("source", "le_forwarder_server")),
+ }
+ go server.ListenAndServe()
} else {
go func() {
redirectListener, err := net.Listen("tcp", httpListenAddress)
if err != nil {
- l4g.Error("Unable to setup forwarding: " + err.Error())
+ mlog.Error("Unable to setup forwarding: " + err.Error())
return
}
defer redirectListener.Close()
- http.Serve(redirectListener, http.HandlerFunc(redirectHTTPToHTTPS))
+ server := &http.Server{
+ Handler: handler,
+ ErrorLog: a.Log.StdLog(mlog.String("source", "forwarder_server")),
+ }
+ server.Serve(redirectListener)
}()
}
}
@@ -197,7 +207,7 @@ func (a *App) StartServer() error {
err = a.Srv.Server.Serve(listener)
}
if err != nil && err != http.ErrServerClosed {
- l4g.Critical(utils.T("api.server.start_server.starting.critical"), err)
+ mlog.Critical(fmt.Sprintf("Error starting server, err:%v", err))
time.Sleep(time.Second)
}
close(a.Srv.didFinishListen)
@@ -213,7 +223,7 @@ func (a *App) StopServer() {
didShutdown := false
for a.Srv.didFinishListen != nil && !didShutdown {
if err := a.Srv.Server.Shutdown(ctx); err != nil {
- l4g.Warn(err.Error())
+ mlog.Warn(err.Error())
}
timer := time.NewTimer(time.Millisecond * 50)
select {