summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--commands/hugo.go6
-rw-r--r--hugolib/alias.go2
-rw-r--r--hugolib/page.go6
-rw-r--r--hugolib/page_content.go2
-rw-r--r--hugolib/pagebundler_capture.go2
-rw-r--r--hugolib/site.go35
-rw-r--r--i18n/i18n.go6
-rw-r--r--tpl/data/data.go6
8 files changed, 44 insertions, 21 deletions
diff --git a/commands/hugo.go b/commands/hugo.go
index 7d2fa9803..175c6dc99 100644
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -131,7 +131,7 @@ func (c *commandeer) createLogger(cfg config.Provider, running bool) (*loggers.L
logThreshold = jww.LevelWarn
logFile = cfg.GetString("logFile")
outHandle = os.Stdout
- stdoutThreshold = jww.LevelError
+ stdoutThreshold = jww.LevelWarn
)
if c.h.verboseLog || c.h.logging || (c.h.logFile != "") {
@@ -294,7 +294,7 @@ func (c *commandeer) fullBuild() error {
if !os.IsNotExist(err) {
return errors.Wrap(err, "Error copying static files")
}
- c.logger.WARN.Println("No Static directory found")
+ c.logger.INFO.Println("No Static directory found")
}
langCount = cnt
langCount = cnt
@@ -405,7 +405,7 @@ func (c *commandeer) doWithPublishDirs(f func(sourceFs *filesystems.SourceFilesy
staticFilesystems := c.hugo.BaseFs.SourceFilesystems.Static
if len(staticFilesystems) == 0 {
- c.logger.WARN.Println("No static directories found to sync")
+ c.logger.INFO.Println("No static directories found to sync")
return langCount, nil
}
diff --git a/hugolib/alias.go b/hugolib/alias.go
index bcf8f1963..c44f32dbb 100644
--- a/hugolib/alias.go
+++ b/hugolib/alias.go
@@ -174,7 +174,7 @@ func (a aliasHandler) targetPathAlias(src string) (string, error) {
return "", fmt.Errorf("Cannot create \"%s\": Windows filename restriction", originalAlias)
}
for _, m := range msgs {
- a.log.WARN.Println(m)
+ a.log.INFO.Println(m)
}
}
diff --git a/hugolib/page.go b/hugolib/page.go
index d91082b3b..070df133b 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -326,7 +326,7 @@ func (p *Page) initContent() {
select {
case <-ctx.Done():
- p.s.Log.WARN.Printf("WARNING: Timed out creating content for page %q (.Content will be empty). This is most likely a circular shortcode content loop that should be fixed. If this is just a shortcode calling a slow remote service, try to set \"timeout=20000\" (or higher, value is in milliseconds) in config.toml.\n", p.pathOrTitle())
+ p.s.Log.WARN.Printf("Timed out creating content for page %q (.Content will be empty). This is most likely a circular shortcode content loop that should be fixed. If this is just a shortcode calling a slow remote service, try to set \"timeout=30000\" (or higher, value is in milliseconds) in config.toml.\n", p.pathOrTitle())
case err := <-c:
if err != nil {
p.s.SendError(err)
@@ -1456,7 +1456,7 @@ func (p *Page) updateMetaData(frontmatter map[string]interface{}) error {
if draft != nil && published != nil {
p.Draft = *draft
- p.s.Log.WARN.Printf("page %q has both draft and published settings in its frontmatter. Using draft.", p.File.Path())
+ p.s.Log.WARN.Printf("page %q has both draft and published settings in its frontmatter. Using draft.", p.Filename())
} else if draft != nil {
p.Draft = *draft
} else if published != nil {
@@ -1973,8 +1973,6 @@ func (p *Page) initLanguage() {
language := ml.Language(p.lang)
if language == nil {
- // It can be a file named stefano.chiodino.md.
- p.s.Log.WARN.Printf("Page language (if it is that) not found in multilang setup: %s.", p.lang)
language = ml.DefaultLang
}
diff --git a/hugolib/page_content.go b/hugolib/page_content.go
index dc043f824..75124a1df 100644
--- a/hugolib/page_content.go
+++ b/hugolib/page_content.go
@@ -188,7 +188,7 @@ func (p *Page) parse(reader io.Reader) error {
if gi != nil {
p.GitInfo = gi
} else if enabled {
- p.s.Log.WARN.Printf("Failed to find GitInfo for page %q", p.Path())
+ p.s.Log.INFO.Printf("Failed to find GitInfo for page %q", p.Path())
}
}
diff --git a/hugolib/pagebundler_capture.go b/hugolib/pagebundler_capture.go
index c152262cc..446d3b0c7 100644
--- a/hugolib/pagebundler_capture.go
+++ b/hugolib/pagebundler_capture.go
@@ -679,7 +679,7 @@ func (c *capturer) isSeen(dirname string) bool {
seen := c.seen[dirname]
c.seen[dirname] = true
if seen {
- c.logger.WARN.Printf("Content dir %q already processed; skipped to avoid infinite recursion.", dirname)
+ c.logger.INFO.Printf("Content dir %q already processed; skipped to avoid infinite recursion.", dirname)
return true
}
diff --git a/hugolib/site.go b/hugolib/site.go
index e58dd39b2..761d4a6bd 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -956,7 +956,7 @@ func (s *Site) handleDataFile(r source.ReadableFile) error {
higherPrecedentMap := higherPrecedentData.(map[string]interface{})
for key, value := range data.(map[string]interface{}) {
if _, exists := higherPrecedentMap[key]; exists {
- s.Log.WARN.Printf("Data for key '%s' in path '%s' is overridden higher precedence data already in the data tree", key, r.Path())
+ s.Log.WARN.Printf("Data for key '%s' in path '%s' is overridden by higher precedence data already in the data tree", key, r.Path())
} else {
higherPrecedentMap[key] = value
}
@@ -1759,24 +1759,49 @@ func (s *Site) renderAndWritePage(statCounter *uint64, name string, targetPath s
return s.publisher.Publish(pd)
}
+var infoOnMissingLayout = map[string]bool{
+ // The 404 layout is very much optional in Hugo, but we do look for it.
+ "404": true,
+}
+
func (s *Site) renderForLayouts(name string, d interface{}, w io.Writer, layouts ...string) (err error) {
var templ tpl.Template
templ = s.findFirstTemplate(layouts...)
if templ == nil {
- s.Log.WARN.Printf("[%s] Unable to locate layout for %q: %s\n", s.Language.Lang, name, layouts)
+ log := s.Log.WARN
+ if infoOnMissingLayout[name] {
+ log = s.Log.INFO
+ }
+
+ if p, ok := d.(*PageOutput); ok {
+ log.Printf("Found no layout for %q, language %q, output format %q: create a template below /layouts with one of these filenames: %s\n", name, s.Language.Lang, p.outputFormat.Name, layoutsLogFormat(layouts))
+ } else {
+ log.Printf("Found no layout for %q, language %q: create a template below /layouts with one of these filenames: %s\n", name, s.Language.Lang, layoutsLogFormat(layouts))
+ }
return nil
}
if err = templ.Execute(w, d); err != nil {
- if p, ok := d.(*PageOutput); ok {
- return p.errorf(err, "render of %q failed", name)
- }
return _errors.Wrapf(err, "render of %q failed", name)
}
return
}
+func layoutsLogFormat(layouts []string) string {
+ var filtered []string
+ for _, l := range layouts {
+ // This is a technical prefix of no interest to the user.
+ lt := strings.TrimPrefix(l, "_text/")
+ // We have this in the lookup path for historical reasons.
+ lt = strings.TrimPrefix(lt, "page/")
+ filtered = append(filtered, lt)
+ }
+
+ filtered = helpers.UniqueStrings(filtered)
+ return strings.Join(filtered, ", ")
+}
+
func (s *Site) findFirstTemplate(layouts ...string) tpl.Template {
for _, layout := range layouts {
if templ, found := s.Tmpl.Lookup(layout); found {
diff --git a/i18n/i18n.go b/i18n/i18n.go
index d395bbf62..25f2d300e 100644
--- a/i18n/i18n.go
+++ b/i18n/i18n.go
@@ -45,11 +45,11 @@ func (t Translator) Func(lang string) bundle.TranslateFunc {
if f, ok := t.translateFuncs[lang]; ok {
return f
}
- t.logger.WARN.Printf("Translation func for language %v not found, use default.", lang)
+ t.logger.INFO.Printf("Translation func for language %v not found, use default.", lang)
if f, ok := t.translateFuncs[t.cfg.GetString("defaultContentLanguage")]; ok {
return f
}
- t.logger.WARN.Println("i18n not initialized, check that you have language file (in i18n) that matches the site language or the default language.")
+ t.logger.INFO.Println("i18n not initialized; if you need string translations, check that you have a bundle in /i18n that matches the site language or the default language.")
return func(translationID string, args ...interface{}) string {
return ""
}
@@ -61,7 +61,7 @@ func (t Translator) initFuncs(bndl *bundle.Bundle) {
defaultT, err := bndl.Tfunc(defaultContentLanguage)
if err != nil {
- t.logger.WARN.Printf("No translation bundle found for default language %q", defaultContentLanguage)
+ t.logger.INFO.Printf("No translation bundle found for default language %q", defaultContentLanguage)
}
enableMissingTranslationPlaceholders := t.cfg.GetBool("enableMissingTranslationPlaceholders")
diff --git a/tpl/data/data.go b/tpl/data/data.go
index 8b3eb8292..cecce4b45 100644
--- a/tpl/data/data.go
+++ b/tpl/data/data.go
@@ -50,7 +50,7 @@ func (ns *Namespace) GetCSV(sep string, urlParts ...string) (d [][]string, err e
url := strings.Join(urlParts, "")
var clearCacheSleep = func(i int, u string) {
- ns.deps.Log.WARN.Printf("Retry #%d for %s and sleeping for %s", i, url, resSleep)
+ ns.deps.Log.INFO.Printf("Retry #%d for %s and sleeping for %s", i, url, resSleep)
time.Sleep(resSleep)
deleteCache(url, ns.deps.Fs.Source, ns.deps.Cfg)
}
@@ -109,8 +109,8 @@ func (ns *Namespace) GetJSON(urlParts ...string) (v interface{}, err error) {
}
err = json.Unmarshal(c, &v)
if err != nil {
- ns.deps.Log.WARN.Printf("Cannot read JSON from resource %s: %s", url, err)
- ns.deps.Log.WARN.Printf("Retry #%d for %s and sleeping for %s", i, url, resSleep)
+ ns.deps.Log.INFO.Printf("Cannot read JSON from resource %s: %s", url, err)
+ ns.deps.Log.INFO.Printf("Retry #%d for %s and sleeping for %s", i, url, resSleep)
time.Sleep(resSleep)
deleteCache(url, ns.deps.Fs.Source, ns.deps.Cfg)
continue