Closed archiecobbs closed 2 years ago
FYI upstream issues are here: https://gitlab.com/nbdkit/nbdkit/-/issues
The issue is that debug messages and error messages are handled separately.
Debug messages are only generated when --verbose
is present, and are always sent to stderr: https://gitlab.com/nbdkit/nbdkit/-/blob/master/server/debug.c It's not possible to change this, but you can redirect fd 2 of the nbdkit subprocess to somewhere else (maybe to the logger command?)
Error messages are generated for error conditions, and they go to stderr or the syslog depending on the --log
setting, as described in the manual. https://gitlab.com/nbdkit/nbdkit/-/blob/master/server/log.c
So it's working as expected as far as I can see. I would suggest for the debug messages that you redirect fd 2 of the nbdkit process after forking.
OK - thanks for the explanation and sorry about targeting the wrong project!
Versions:
Not sure if I'm doing something wrong, but it seems like logging to stderr works too well, and logging to syslog completely does not work.
Problem 1: when the
--verbose
flag is given tonbdkit(1)
, it logs to stderr (a) even though the--foreground
flag is not given. This happens even if the--log=syslog
flag is given.Here's an example. When my program (s3backer) runs with the
--debug
flag, itfork()
's offnbdkit(1)
as shown in the log below with the--verbose
flag. But thennbdkit(1)
continues to log stuff to syslog even after it's forked into the background:My NBD plugin also ends up logging stuff to stderr (not shown) in this situation - presumably because it is logging via
nbdkit_vdebug()
and that goes to the same place.Problem 2: When
nbdkit(1)
is invoked without the--verbose
flag, logging completely disappears. It should be going to syslog but never shows up in/var/log/messages
(even with--log=syslog
).Example:
What am I doing wrong? Thanks.