mirror of
https://github.com/gohugoio/hugo.git
synced 2025-09-01 22:42:45 +02:00
@@ -30,7 +30,6 @@ import (
|
||||
"github.com/gohugoio/hugo/common/maps"
|
||||
"github.com/gohugoio/hugo/common/types"
|
||||
"github.com/gohugoio/hugo/deps"
|
||||
"github.com/gohugoio/hugo/helpers"
|
||||
"github.com/gohugoio/hugo/langs"
|
||||
"github.com/gohugoio/hugo/tpl/compare"
|
||||
"github.com/spf13/cast"
|
||||
@@ -393,7 +392,7 @@ func (ns *Namespace) IsSet(c any, key any) (bool, error) {
|
||||
return av.MapIndex(kv).IsValid(), nil
|
||||
}
|
||||
default:
|
||||
helpers.DistinctErrorLog.Printf("WARNING: calling IsSet with unsupported type %q (%T) will always return false.\n", av.Kind(), c)
|
||||
ns.deps.Log.Warnf("calling IsSet with unsupported type %q (%T) will always return false.\n", av.Kind(), c)
|
||||
}
|
||||
|
||||
return false, nil
|
||||
|
@@ -30,7 +30,6 @@ import (
|
||||
"github.com/gohugoio/hugo/common/types"
|
||||
|
||||
"github.com/gohugoio/hugo/common/constants"
|
||||
"github.com/gohugoio/hugo/common/loggers"
|
||||
|
||||
"github.com/spf13/cast"
|
||||
|
||||
@@ -92,7 +91,7 @@ func (ns *Namespace) GetCSV(sep string, args ...any) (d [][]string, err error) {
|
||||
if security.IsAccessDenied(err) {
|
||||
return nil, err
|
||||
}
|
||||
ns.deps.Log.(loggers.IgnorableLogger).Errorsf(constants.ErrRemoteGetCSV, "Failed to get CSV resource %q: %s", url, err)
|
||||
ns.deps.Log.Errorsf(constants.ErrRemoteGetCSV, "Failed to get CSV resource %q: %s", url, err)
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
@@ -128,7 +127,7 @@ func (ns *Namespace) GetJSON(args ...any) (any, error) {
|
||||
if security.IsAccessDenied(err) {
|
||||
return nil, err
|
||||
}
|
||||
ns.deps.Log.(loggers.IgnorableLogger).Errorsf(constants.ErrRemoteGetJSON, "Failed to get JSON resource %q: %s", url, err)
|
||||
ns.deps.Log.Errorsf(constants.ErrRemoteGetJSON, "Failed to get JSON resource %q: %s", url, err)
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
@@ -22,6 +22,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/bep/logg"
|
||||
"github.com/gohugoio/hugo/common/maps"
|
||||
|
||||
qt "github.com/frankban/quicktest"
|
||||
@@ -108,13 +109,13 @@ func TestGetCSV(t *testing.T) {
|
||||
got, err := ns.GetCSV(test.sep, test.url)
|
||||
|
||||
if _, ok := test.expect.(bool); ok {
|
||||
c.Assert(int(ns.deps.Log.LogCounters().ErrorCounter.Count()), qt.Equals, 1)
|
||||
c.Assert(int(ns.deps.Log.LoggCount(logg.LevelError)), qt.Equals, 1)
|
||||
c.Assert(got, qt.IsNil)
|
||||
return
|
||||
}
|
||||
|
||||
c.Assert(err, qt.IsNil, msg)
|
||||
c.Assert(int(ns.deps.Log.LogCounters().ErrorCounter.Count()), qt.Equals, 0)
|
||||
c.Assert(int(ns.deps.Log.LoggCount(logg.LevelError)), qt.Equals, 0)
|
||||
c.Assert(got, qt.Not(qt.IsNil), msg)
|
||||
c.Assert(got, qt.DeepEquals, test.expect, msg)
|
||||
})
|
||||
@@ -200,11 +201,11 @@ func TestGetJSON(t *testing.T) {
|
||||
got, _ := ns.GetJSON(test.url)
|
||||
|
||||
if _, ok := test.expect.(bool); ok {
|
||||
c.Assert(int(ns.deps.Log.LogCounters().ErrorCounter.Count()), qt.Equals, 1)
|
||||
c.Assert(int(ns.deps.Log.LoggCount(logg.LevelError)), qt.Equals, 1)
|
||||
return
|
||||
}
|
||||
|
||||
c.Assert(int(ns.deps.Log.LogCounters().ErrorCounter.Count()), qt.Equals, 0, msg)
|
||||
c.Assert(int(ns.deps.Log.LoggCount(logg.LevelError)), qt.Equals, 0, msg)
|
||||
c.Assert(got, qt.Not(qt.IsNil), msg)
|
||||
c.Assert(got, qt.DeepEquals, test.expect)
|
||||
|
||||
@@ -283,7 +284,7 @@ func TestHeaders(t *testing.T) {
|
||||
err := fn("http://example.org/api", "?foo", test.headers)
|
||||
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(int(ns.deps.Log.LogCounters().ErrorCounter.Count()), qt.Equals, 0)
|
||||
c.Assert(int(ns.deps.Log.LoggCount(logg.LevelError)), qt.Equals, 0)
|
||||
test.assert(c, headers.String())
|
||||
}
|
||||
|
||||
|
@@ -15,6 +15,9 @@ package data
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"github.com/gohugoio/hugo/common/loggers"
|
||||
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
@@ -29,7 +32,6 @@ import (
|
||||
|
||||
qt "github.com/frankban/quicktest"
|
||||
"github.com/gohugoio/hugo/cache/filecache"
|
||||
"github.com/gohugoio/hugo/common/loggers"
|
||||
"github.com/gohugoio/hugo/config"
|
||||
"github.com/gohugoio/hugo/deps"
|
||||
"github.com/gohugoio/hugo/hugofs"
|
||||
@@ -182,7 +184,7 @@ func TestScpGetRemoteParallel(t *testing.T) {
|
||||
|
||||
func newDeps(cfg config.Provider) *deps.Deps {
|
||||
conf := testconfig.GetTestConfig(nil, cfg)
|
||||
logger := loggers.NewIgnorableLogger(loggers.NewErrorLogger(), nil)
|
||||
logger := loggers.NewDefault()
|
||||
fs := hugofs.NewFrom(afero.NewMemMapFs(), conf.BaseConfig())
|
||||
|
||||
d := &deps.Deps{
|
||||
|
@@ -16,27 +16,22 @@ package fmt
|
||||
|
||||
import (
|
||||
_fmt "fmt"
|
||||
"sort"
|
||||
|
||||
"github.com/bep/logg"
|
||||
"github.com/gohugoio/hugo/common/loggers"
|
||||
|
||||
"github.com/gohugoio/hugo/deps"
|
||||
"github.com/gohugoio/hugo/helpers"
|
||||
"github.com/spf13/cast"
|
||||
)
|
||||
|
||||
// New returns a new instance of the fmt-namespaced template functions.
|
||||
func New(d *deps.Deps) *Namespace {
|
||||
ignorableLogger, ok := d.Log.(loggers.IgnorableLogger)
|
||||
if !ok {
|
||||
ignorableLogger = loggers.NewIgnorableLogger(d.Log, nil)
|
||||
}
|
||||
|
||||
distinctLogger := helpers.NewDistinctLogger(d.Log)
|
||||
ns := &Namespace{
|
||||
distinctLogger: ignorableLogger.Apply(distinctLogger),
|
||||
logger: d.Log,
|
||||
}
|
||||
|
||||
d.BuildStartListeners.Add(func() {
|
||||
ns.distinctLogger.Reset()
|
||||
ns.logger.Reset()
|
||||
})
|
||||
|
||||
return ns
|
||||
@@ -44,7 +39,7 @@ func New(d *deps.Deps) *Namespace {
|
||||
|
||||
// Namespace provides template functions for the "fmt" namespace.
|
||||
type Namespace struct {
|
||||
distinctLogger loggers.IgnorableLogger
|
||||
logger loggers.Logger
|
||||
}
|
||||
|
||||
// Print returns a string representation of args.
|
||||
@@ -65,7 +60,7 @@ func (ns *Namespace) Println(args ...any) string {
|
||||
// Errorf formats args according to a format specifier and logs an ERROR.
|
||||
// It returns an empty string.
|
||||
func (ns *Namespace) Errorf(format string, args ...any) string {
|
||||
ns.distinctLogger.Errorf(format, args...)
|
||||
ns.logger.Errorf(format, args...)
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -73,13 +68,41 @@ func (ns *Namespace) Errorf(format string, args ...any) string {
|
||||
// an information text that the error with the given id can be suppressed in config.
|
||||
// It returns an empty string.
|
||||
func (ns *Namespace) Erroridf(id, format string, args ...any) string {
|
||||
ns.distinctLogger.Errorsf(id, format, args...)
|
||||
ns.logger.Errorsf(id, format, args...)
|
||||
return ""
|
||||
}
|
||||
|
||||
// Warnf formats args according to a format specifier and logs a WARNING.
|
||||
// It returns an empty string.
|
||||
func (ns *Namespace) Warnf(format string, args ...any) string {
|
||||
ns.distinctLogger.Warnf(format, args...)
|
||||
ns.logger.Warnf(format, args...)
|
||||
return ""
|
||||
}
|
||||
|
||||
// Warnmf is epxermimental and subject to change at any time.
|
||||
func (ns *Namespace) Warnmf(m any, format string, args ...any) string {
|
||||
return ns.logmf(ns.logger.Warn(), m, format, args...)
|
||||
}
|
||||
|
||||
// Errormf is epxermimental and subject to change at any time.
|
||||
func (ns *Namespace) Errormf(m any, format string, args ...any) string {
|
||||
return ns.logmf(ns.logger.Error(), m, format, args...)
|
||||
}
|
||||
|
||||
func (ns *Namespace) logmf(l logg.LevelLogger, m any, format string, args ...any) string {
|
||||
mm := cast.ToStringMap(m)
|
||||
fields := make(logg.Fields, len(mm))
|
||||
i := 0
|
||||
for k, v := range mm {
|
||||
fields[i] = logg.Field{Name: k, Value: v}
|
||||
i++
|
||||
}
|
||||
// Sort the fields to make the output deterministic.
|
||||
sort.Slice(fields, func(i, j int) bool {
|
||||
return fields[i].Name < fields[j].Name
|
||||
})
|
||||
|
||||
l.WithFields(fields).Logf(format, args...)
|
||||
|
||||
return ""
|
||||
}
|
||||
|
Reference in New Issue
Block a user