Write all logging (INFO, WARN, ERROR) to stderr

The old setup tried to log >= warning to stderr, the rest to stdout.

However, that logic was flawed, so warnings ended up in stdout, which makes `hugo list all` etc. hard to reason about from scripts.

This commit fixes this by making all logging (info, warn, error) log to stderr and let stdout be reserved for program output.

Fixes #13074
This commit is contained in:
Bjørn Erik Pedersen
2024-12-13 09:23:09 +01:00
committed by GitHub
parent ec1933f79d
commit 9dfa112617
15 changed files with 85 additions and 59 deletions

View File

@@ -1,13 +1,13 @@
# Test deprecation logging.
hugo -e info --logLevel info
stdout 'INFO deprecated: item was deprecated in Hugo'
stderr 'INFO deprecated: item was deprecated in Hugo'
hugo -e warn --logLevel warn
stdout 'WARN deprecated: item was deprecated in Hugo'
stderr 'WARN deprecated: item was deprecated in Hugo'
! hugo -e error --logLevel warn
stdout 'ERROR deprecated: item was deprecated in Hugo'
stderr 'ERROR deprecated: item was deprecated in Hugo'
-- hugo.toml --
baseURL = "https://example.com/"

View File

@@ -3,4 +3,5 @@ hugo
! stderr .
-- config/_default/hugo.toml --
baseURL = "https://example.com/"
baseURL = "https://example.com/"
disableKinds = ["RSS", "page", "sitemap", "robotsTXT", "404", "taxonomy", "term", "home"]

View File

@@ -1,6 +1,6 @@
hugo --printPathWarnings
stdout 'Duplicate'
stderr 'Duplicate'
-- hugo.toml --
-- assets/css/styles.css --

View File

@@ -1,6 +1,6 @@
hugo --printPathWarnings
stdout 'Duplicate target paths: .index.html \(2\)'
stderr 'Duplicate target paths: .index.html \(2\)'
-- hugo.toml --
disableKinds = ["taxonomy", "term", "RSS", "sitemap", "robotsTXT", "404", "section"]

View File

@@ -1,6 +1,6 @@
hugo --printUnusedTemplates
stdout 'Template _default/list.html is unused'
stderr 'Template _default/list.html is unused'
-- hugo.toml --
disableKinds = ["taxonomy", "term", "RSS", "sitemap", "robotsTXT", "404", "section", "page"]

View File

@@ -0,0 +1,13 @@
# Issue #13074
hugo
stderr 'warning'
! stdout 'warning'
-- hugo.toml --
baseURL = "http://example.org/"
disableKinds = ["RSS", "page", "sitemap", "robotsTXT", "404", "taxonomy", "term"]
-- layouts/index.html --
Home
{{ warnf "This is a warning" }}