Fix deprecation printing on info level

Fixes #11638
This commit is contained in:
Bjørn Erik Pedersen 2023-10-31 09:25:28 +01:00
parent 23fcfb7f74
commit ab21433689
5 changed files with 56 additions and 6 deletions

View file

@ -21,7 +21,7 @@ import (
"github.com/bep/logg"
)
func InitGlobalLogger(panicOnWarnings bool) {
func InitGlobalLogger(level logg.Level, panicOnWarnings bool) {
logMu.Lock()
defer logMu.Unlock()
var logHookLast func(e *logg.Entry) error
@ -31,6 +31,7 @@ func InitGlobalLogger(panicOnWarnings bool) {
log = New(
Options{
Level: level,
Distinct: true,
HandlerPost: logHookLast,
},
@ -49,5 +50,5 @@ func Log() Logger {
var log Logger
func init() {
InitGlobalLogger(false)
InitGlobalLogger(logg.LevelWarn, false)
}

View file

@ -93,10 +93,10 @@ func LoadConfig(d ConfigSourceDescriptor) (*Configs, error) {
// This is unfortunate, but these are global settings.
tpl.SetSecurityAllowActionJSTmpl(configs.Base.Security.GoTemplates.AllowActionJSTmpl)
loggers.InitGlobalLogger(configs.Base.PanicOnWarning)
loggers.InitGlobalLogger(d.Logger.Level(), configs.Base.PanicOnWarning)
return configs, nil
}
// ConfigSourceDescriptor describes where to find the config (e.g. config.toml etc.).
@ -330,7 +330,6 @@ func (l *configLoader) envStringToVal(k, v string) any {
default:
return v
}
}
func (l *configLoader) loadConfigMain(d ConfigSourceDescriptor) (config.LoadConfigResult, modules.ModulesConfig, error) {

View file

@ -30,6 +30,7 @@ import (
"github.com/gohugoio/hugo/hugofs"
"github.com/gohugoio/hugo/common/loggers"
"github.com/gohugoio/hugo/common/para"
"github.com/gohugoio/hugo/config"
"github.com/gohugoio/hugo/resources/postpub"
@ -172,7 +173,7 @@ func (h *HugoSites) Build(config BuildCfg, events ...fsnotify.Event) error {
return err
}
errorCount := h.Log.LoggCount(logg.LevelError)
errorCount := h.Log.LoggCount(logg.LevelError) + loggers.Log().LoggCount(logg.LevelError)
if errorCount > 0 {
return fmt.Errorf("logged %d error(s)", errorCount)
}

View file

@ -0,0 +1,25 @@
hugo -e info --logLevel info
stdout 'INFO item was deprecated in Hugo'
hugo -e warn --logLevel warn
stdout 'WARN item was deprecated in Hugo'
! hugo -e error --logLevel warn
stdout 'ERROR item was deprecated in Hugo'
-- hugo.toml --
baseURL = "https://example.com/"
disableKinds = ["taxonomy", "term"]
-- layouts/index.html --
Deprecate:
{{ if eq hugo.Environment "info" }}
{{ debug.TestDeprecationInfo "item" "alternative" }}
{{ end }}
{{ if eq hugo.Environment "warn" }}
{{ debug.TestDeprecationWarn "item" "alternative" }}
{{ end }}
{{ if eq hugo.Environment "error" }}
{{ debug.TestDeprecationErr "item" "alternative" }}
{{ end }}

View file

@ -24,6 +24,7 @@ import (
"github.com/spf13/cast"
"github.com/yuin/goldmark/util"
"github.com/gohugoio/hugo/common/hugo"
"github.com/gohugoio/hugo/deps"
)
@ -156,3 +157,26 @@ func (t *timer) Stop() string {
// This is used in templates, we need to return something.
return ""
}
// Internal template func, used in tests only.
func (ns *Namespace) TestDeprecationInfo(item, alternative string) string {
v := hugo.CurrentVersion
hugo.Deprecate(item, alternative, v.String())
return ""
}
// Internal template func, used in tests only.
func (ns *Namespace) TestDeprecationWarn(item, alternative string) string {
v := hugo.CurrentVersion
v.Minor -= 6
hugo.Deprecate(item, alternative, v.String())
return ""
}
// Internal template func, used in tests only.
func (ns *Namespace) TestDeprecationErr(item, alternative string) string {
v := hugo.CurrentVersion
v.Minor -= 12
hugo.Deprecate(item, alternative, v.String())
return ""
}