fix logs not printing correctly, removed unneccessary loggers

This commit is contained in:
yusing
2025-01-20 17:42:54 +08:00
parent 64e85c3076
commit dd0bbdc7b4
38 changed files with 130 additions and 150 deletions

View File

@@ -43,8 +43,6 @@ type (
}
)
var logger = logging.With().Str("module", "accesslog").Logger()
func NewAccessLogger(parent task.Parent, io AccessLogIO, cfg *Config) *AccessLogger {
l := &AccessLogger{
task: parent.Subtask("accesslog"),
@@ -133,7 +131,7 @@ func (l *AccessLogger) Flush(force bool) {
}
func (l *AccessLogger) handleErr(err error) {
E.LogError("failed to write access log", err, &logger)
E.LogError("failed to write access log", err)
}
func (l *AccessLogger) start() {
@@ -170,6 +168,6 @@ func (l *AccessLogger) write(data []byte) {
if err != nil {
l.handleErr(err)
} else {
logger.Debug().Msg("access log flushed to " + l.io.Name())
logging.Debug().Msg("access log flushed to " + l.io.Name())
}
}

View File

@@ -6,6 +6,7 @@ import (
"path"
"sync"
"github.com/yusing/go-proxy/internal/logging"
"github.com/yusing/go-proxy/internal/task"
"github.com/yusing/go-proxy/internal/utils"
)
@@ -55,7 +56,7 @@ func (f *File) Close() error {
}
func (f *File) closeOnZero() {
defer logger.Debug().
defer logging.Debug().
Str("path", f.path).
Msg("access log closed")

View File

@@ -8,6 +8,8 @@ import (
"net/url"
"strconv"
"time"
"github.com/yusing/go-proxy/internal/logging"
)
type (
@@ -137,6 +139,6 @@ func (f *JSONFormatter) Format(line *bytes.Buffer, req *http.Request, res *http.
marshaller := json.NewEncoder(line)
err := marshaller.Encode(entry)
if err != nil {
logger.Err(err).Msg("failed to marshal json log")
logging.Err(err).Msg("failed to marshal json log")
}
}

View File

@@ -8,6 +8,7 @@ import (
"github.com/rs/zerolog"
"github.com/yusing/go-proxy/internal/common"
E "github.com/yusing/go-proxy/internal/error"
"github.com/yusing/go-proxy/internal/logging"
"github.com/yusing/go-proxy/internal/net/http/loadbalancer/types"
"github.com/yusing/go-proxy/internal/route/routes"
"github.com/yusing/go-proxy/internal/task"
@@ -46,7 +47,7 @@ func New(cfg *Config) *LoadBalancer {
lb := &LoadBalancer{
Config: new(Config),
pool: types.NewServerPool(),
l: logger.With().Str("name", cfg.Link).Logger(),
l: logging.With().Str("name", cfg.Link).Logger(),
}
lb.UpdateConfigIfNeeded(cfg)
return lb

View File

@@ -1,5 +0,0 @@
package loadbalancer
import "github.com/yusing/go-proxy/internal/logging"
var logger = logging.With().Str("module", "load_balancer").Logger()

View File

@@ -30,7 +30,6 @@ const (
var (
cfCIDRsLastUpdate time.Time
cfCIDRsMu sync.Mutex
cfCIDRsLogger = logger.With().Str("name", "CloudflareRealIP").Logger()
)
var CloudflareRealIP = NewMiddleware[cloudflareRealIP]()
@@ -87,7 +86,7 @@ func tryFetchCFCIDR() (cfCIDRs []*types.CIDR) {
)
if err != nil {
cfCIDRsLastUpdate = time.Now().Add(-cfCIDRsUpdateRetryInterval - cfCIDRsUpdateInterval)
cfCIDRsLogger.Err(err).Msg("failed to update cloudflare range, retry in " + strutils.FormatDuration(cfCIDRsUpdateRetryInterval))
logging.Err(err).Msg("failed to update cloudflare range, retry in " + strutils.FormatDuration(cfCIDRsUpdateRetryInterval))
return nil
}
if len(cfCIDRs) == 0 {
@@ -96,7 +95,7 @@ func tryFetchCFCIDR() (cfCIDRs []*types.CIDR) {
}
cfCIDRsLastUpdate = time.Now()
cfCIDRsLogger.Info().Msg("cloudflare CIDR range updated")
logging.Info().Msg("cloudflare CIDR range updated")
return
}

View File

@@ -8,6 +8,7 @@ import (
"strconv"
"strings"
"github.com/yusing/go-proxy/internal/logging"
gphttp "github.com/yusing/go-proxy/internal/net/http"
"github.com/yusing/go-proxy/internal/net/http/middleware/errorpage"
)
@@ -28,7 +29,7 @@ func (customErrorPage) modifyResponse(resp *http.Response) error {
if !gphttp.IsSuccess(resp.StatusCode) && (contentType.IsHTML() || contentType.IsPlainText()) {
errorPage, ok := errorpage.GetErrorPageByStatus(resp.StatusCode)
if ok {
logger.Debug().Msgf("error page for status %d loaded", resp.StatusCode)
logging.Debug().Msgf("error page for status %d loaded", resp.StatusCode)
_, _ = io.Copy(io.Discard, resp.Body) // drain the original body
resp.Body.Close()
resp.Body = io.NopCloser(bytes.NewReader(errorPage))
@@ -36,7 +37,7 @@ func (customErrorPage) modifyResponse(resp *http.Response) error {
resp.Header.Set(gphttp.HeaderContentLength, strconv.Itoa(len(errorPage)))
resp.Header.Set(gphttp.HeaderContentType, "text/html; charset=utf-8")
} else {
logger.Error().Msgf("unable to load error page for status %d", resp.StatusCode)
logging.Error().Msgf("unable to load error page for status %d", resp.StatusCode)
}
return nil
}
@@ -52,7 +53,7 @@ func ServeStaticErrorPageFile(w http.ResponseWriter, r *http.Request) (served bo
filename := path[len(gphttp.StaticFilePathPrefix):]
file, ok := errorpage.GetStaticFile(filename)
if !ok {
logger.Error().Msg("unable to load resource " + filename)
logging.Error().Msg("unable to load resource " + filename)
return false
}
ext := filepath.Ext(filename)
@@ -64,10 +65,10 @@ func ServeStaticErrorPageFile(w http.ResponseWriter, r *http.Request) (served bo
case ".css":
w.Header().Set(gphttp.HeaderContentType, "text/css; charset=utf-8")
default:
logger.Error().Msgf("unexpected file type %q for %s", ext, filename)
logging.Error().Msgf("unexpected file type %q for %s", ext, filename)
}
if _, err := w.Write(file); err != nil {
logger.Err(err).Msg("unable to write resource " + filename)
logging.Err(err).Msg("unable to write resource " + filename)
http.Error(w, "Error page failure", http.StatusInternalServerError)
}
return true

View File

@@ -55,7 +55,7 @@ func GetErrorPageByStatus(statusCode int) (content []byte, ok bool) {
func loadContent() {
files, err := U.ListFiles(errPagesBasePath, 0)
if err != nil {
logger.Err(err).Msg("failed to list error page resources")
logging.Err(err).Msg("failed to list error page resources")
return
}
for _, file := range files {
@@ -64,7 +64,7 @@ func loadContent() {
}
content, err := os.ReadFile(file)
if err != nil {
logger.Warn().Err(err).Msgf("failed to read error page resource %s", file)
logging.Warn().Err(err).Msgf("failed to read error page resource %s", file)
continue
}
file = path.Base(file)
@@ -90,14 +90,14 @@ func watchDir() {
loadContent()
case events.ActionFileDeleted:
fileContentMap.Delete(filename)
logger.Warn().Msgf("error page resource %s deleted", filename)
logging.Warn().Msgf("error page resource %s deleted", filename)
case events.ActionFileRenamed:
logger.Warn().Msgf("error page resource %s deleted", filename)
logging.Warn().Msgf("error page resource %s deleted", filename)
fileContentMap.Delete(filename)
loadContent()
}
case err := <-errCh:
E.LogError("error watching error page directory", err, &logger)
E.LogError("error watching error page directory", err)
}
}
}

View File

@@ -1,5 +0,0 @@
package errorpage
import "github.com/yusing/go-proxy/internal/logging"
var logger = logging.With().Str("module", "errorpage").Logger()

View File

@@ -1,5 +0,0 @@
package middleware
import "github.com/yusing/go-proxy/internal/logging"
var logger = logging.With().Str("module", "middleware").Logger()

View File

@@ -5,6 +5,7 @@ import (
"github.com/yusing/go-proxy/internal/common"
E "github.com/yusing/go-proxy/internal/error"
"github.com/yusing/go-proxy/internal/logging"
"github.com/yusing/go-proxy/internal/utils"
"github.com/yusing/go-proxy/internal/utils/strutils"
)
@@ -60,7 +61,7 @@ func LoadComposeFiles() {
errs := E.NewBuilder("middleware compile errors")
middlewareDefs, err := utils.ListFiles(common.MiddlewareComposeBasePath, 0)
if err != nil {
logger.Err(err).Msg("failed to list middleware definitions")
logging.Err(err).Msg("failed to list middleware definitions")
return
}
for _, defFile := range middlewareDefs {
@@ -76,7 +77,7 @@ func LoadComposeFiles() {
continue
}
allMiddlewares[name] = m
logger.Info().
logging.Info().
Str("src", path.Base(defFile)).
Str("name", name).
Msg("middleware loaded")
@@ -95,13 +96,13 @@ func LoadComposeFiles() {
continue
}
allMiddlewares[name] = m
logger.Info().
logging.Info().
Str("src", path.Base(defFile)).
Str("name", name).
Msg("middleware loaded")
}
}
if errs.HasError() {
E.LogError(errs.About(), errs.Error(), &logger)
E.LogError(errs.About(), errs.Error())
}
}

View File

@@ -5,6 +5,7 @@ import (
"strings"
"github.com/yusing/go-proxy/internal/common"
"github.com/yusing/go-proxy/internal/logging"
)
type redirectHTTP struct{}
@@ -22,7 +23,7 @@ func (redirectHTTP) before(w http.ResponseWriter, r *http.Request) (proceed bool
host = host[:i] // strip port number if present
}
r.URL.Host = host + ":" + common.ProxyHTTPSPort
logger.Debug().Str("url", r.URL.String()).Msg("redirect to https")
logging.Debug().Str("url", r.URL.String()).Msg("redirect to https")
http.Redirect(w, r, r.URL.String(), http.StatusTemporaryRedirect)
return true
}

View File

@@ -105,8 +105,6 @@ type httpMetricLogger struct {
labels *metrics.HTTPRouteMetricLabels
}
var logger = logging.With().Str("module", "reverse_proxy").Logger()
// WriteHeader implements http.ResponseWriter.
func (l *httpMetricLogger) WriteHeader(status int) {
l.ResponseWriter.WriteHeader(status)
@@ -174,7 +172,7 @@ func NewReverseProxy(name string, target types.URL, transport http.RoundTripper)
panic("nil transport")
}
rp := &ReverseProxy{
Logger: logger.With().Str("name", name).Logger(),
Logger: logging.With().Str("name", name).Logger(),
Transport: transport,
TargetName: name,
TargetURL: target,
@@ -213,17 +211,17 @@ func (p *ReverseProxy) errorHandler(rw http.ResponseWriter, r *http.Request, err
case errors.Is(err, context.Canceled),
errors.Is(err, io.EOF),
errors.Is(err, context.DeadlineExceeded):
logger.Debug().Err(err).Str("url", reqURL).Msg("http proxy error")
logging.Debug().Err(err).Str("url", reqURL).Msg("http proxy error")
default:
var recordErr tls.RecordHeaderError
if errors.As(err, &recordErr) {
logger.Error().
logging.Error().
Str("url", reqURL).
Msgf(`scheme was likely misconfigured as https,
try setting "proxy.%s.scheme" back to "http"`, p.TargetName)
logging.Err(err).Msg("underlying error")
} else {
logger.Err(err).Str("url", reqURL).Msg("http proxy error")
logging.Err(err).Str("url", reqURL).Msg("http proxy error")
}
}