Error message output

David Christensen dpchrist at holgerdanske.com
Mon Sep 21 22:33:45 UTC 2020


On 2020-09-21 04:21, Polytropon wrote:
> On Sun, 20 Sep 2020 22:12:24 -0700, David Christensen wrote:
>> On 2020-09-20 10:11, Polytropon wrote:
>>> I have a general question. Is it still considered useful to
>>> output error messages of a script to standard error?

> What about form?
> 
> 	echo "the error message" > /dev/stderr
> 
> or
> 
> 	echo "the error message" >&2
> 
> WHich one is considered better form, leaving aside the "amount of
> symbols needed"?

"It depends".  The former is dependent upon the system having a 
/dev/stderr.  The latter is dependent upon the shell having redirection 
(which all Bourne-compatible shells should?).  Both seem to work on 
FreeBSD, Debian, macOS, and Cygwin (Windows 7).  But, that is likely to 
be untrue on every system.  And, is it possible to have a situation 
where you have already redirect stderr and yet the script needs to emit 
an error message?  Without a compelling reason either way, I have tended 
to use the latter; but the former is starting to look more idiot-proof.


> I'm primarily interested in what currently the consensus is
> about good form and style, common approach and accepted ways
> of doing things. I could keep spamming the system log with
> progress messages, but that wouldn't be nice, would it? ;-)

My ideal would be to put "less important" messages into a 
program-specific log(s) and to put "important" messages into both 
program-specific logs and the system log.  Again, under configuration/ 
option control.


Truly sophisticated programs use a logging management layer.  For 
example, in Perl:

     https://metacpan.org/pod/Log::Log4perl


David


More information about the freebsd-questions mailing list