Regular output (the actual result of running the program) should go on stdout
, things like you mentioned (e.g. diagnostic, notice, warning, error) on stderr
.
If there is no “regular output”, I would say that it doesn’t really matter which one you choose. You could argue that the logging is the only output, so that should go to stdout
. Or you could argue that it is still “exceptional information” which should go to stderr
.