Concrete problem:Mailman comes with a script to synchronize mailing list subscribers from a flat file (sync_members(8)).This script does not very well adhere to the Rule of Silence. For example, when there is nothing to do (e.g. the current subscribers and the flat file are the same) it prints Nothing to do. to stdout.As we're running this program every few minutes and any output is logged to our log server (with rsyslogd) which then sents daily emails with the logs there tend to be a lot of useless messages in it.There are several ways to deal with this,  and I'm wondering which one is the most appropriate one:Pipe stdout to /dev/null.Use rsyslogd filtering to specifically filter out these messages.Modify the source code of sync_members to adhere to the Rule of Silence.Copy the source code of sync_members, modify the copy and use that one from now on.While each would achieve the desired result, each has its disadvantages:What if at some time there's something interesting on stdout?Seems a rather unclean and hackerish solution, and I daresay there are a lot of programs our there not adhering to the Rule of Silence.What happens if there's an update?Same as 3.I tend to option 2, though if I have to do this for every badly behaved program in our system...What do you think? Is there an additional option or argument in favor or against? Is there a best practice for this case (I daresay this problem is not new)?
How to deal with a pre-packaged program not adhering to the Rule of Silence?
logs;rsyslog
Two suggestions:File a bug report against mailman, so the developer can fix the bug for everyone.Change the synch_members call to synch_members | egrep -v Nothing to do. That will eliminate the Nothing to do. messages.