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.
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
2acbc77d78
Коммит
686c2fbab7
@@ -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 {
|
||||
|
||||
Ссылка в новой задаче
Block a user