3 ms·
I would maybe call it stdlog or stdinfo vs stderr, but yeah naming things is hard.
by packetlost 2y ago
I would maybe call it stdlog or stdinfo vs stderr, but yeah naming things is hard.
- matheusmoreira 2y agoI think stdinfo would exclude error messages from the definition, just like stderr excludes info messages. I really like stdlog. Standard log stream is a pretty awesome name. Short and terse, the word "log" doesn't even need abbreviation and it's correct since it's a superset of error and info streams and also generic enough to cover other unforeseen categories. I'll use it from now on!
- packetlost 2y agoThe idea for info is that it's informational, which is always the case regardless of whether it's printing error messages due to a failure or informational messages because the user specified a `-v` flag or whatever. Whether the command failed or not is communicated via the exit code. That being said, I do prefer stdlog for the reasons: it communicates the intent and usage as unambiguously and tersely as possible.
- matheusmoreira 2y ago> because the user specified a `-v` flag or whatever The way I see it is the version information and help text belong on standard output if the user passes --version and --help since that's what the user explicitly asked for. When the command is invoked incorrectly, the help text should go to standard error while standard output should be empty. I agree about the exit code. People like to parse error messages and that's always wrong. Everything should be done via exit codes instead.
- packetlost 2y agoThe `-v` was in reference to the common convention of one or more `v` flags increasing the verbosity of logging.
- ryandrake 2y agoC++ has std::clog[1], but it's basically cerr, and the OS still only knows about stdin, stdout, and stderr. 1: https://cplusplus.com/reference/iostream/clog/ https://cplusplus.com/reference/iostream/clog/