I have a very simple python program I am running in supervisord.
The supervisord.conf is completely default besides the program section:
[program:logwatcher]
command=/path/to/python -u "/path/to/logwatcher.py"
The python code:
import sys
print("print\n")
print("file=sys.stdout\n", file=sys.stdout)
print("file=sys.stderr\n", file=sys.stderr)
sys.stdout.write("sys.stdout.write\n")
sys.stderr.write("sys.stderr.write\n")
Produces this output:
supervisor> tail logwatcher
print
file=sys.stdout
sys.stdout.write
supervisor> tail logwatcher stdout
file=sys.stderr
sys.stderr.write
supervisor> tail logwatcher stderr
file=sys.stderr
sys.stderr.write
why is tail stdout
only showing stderr messages, and not stdout messages?
why is tail stdout
showing stderr at all?
if tail
is supposed to mimic tail stdout
why don't they match?
tested on supervisor 3.3.5 and supervisor 4.0.1