The sysadmin view of messages from programs
A lot of programs and systems like producing warning messages in various circumstances, or just informative messages. Sometimes the authors of these systems are surprised when sysadmins have very grumpy reactions to those messages. Fortunately, I have realized that there is a very simple and general rule about when your messages will irritate sysadmins and when they won't, and it even ties into current jargon:
You should only produce actionable messages (by default).
An actionable message is a message where a sysadmin can and in fact should take some action in response to it. It is not an error (or your program would stop), but it reporting something that we should go deal with. Ideally it's reporting something that we must go deal with.
Non-actionable messages are noise because there is nothing sysadmins can or should do with them. Your program shouldn't produce noise both because it annoys people and because it makes the actual signal harder to see. In particular, anything that's expected to happen in normal operation is by definition not actionable, or at least it shouldn't be; your program should just deal with it.
This rule should not be a surprise, because it is the same rule that you should already be using for general user interfaces. We've long since passed the point where programs aimed at ordinary users keep popping up alerts about routine things (well, I hope we have) or asking people stupid questions. These days the only excuse you have for bothering the user is if there's something they have to deal with right now or your program can't proceed.
(And as everyone understands, you had better be prepared for them to blindly click whatever option makes your question go away the fastest. Extensions to sysadmin behavior are left as an exercise for the reader.)
The corollary to this is that generally there should be some way of shutting your program up about its actionable message because we've looked at the issue you've reported and concluded that it's actually not a problem in our environment. Perhaps you think that this issue is always a serious problem, no matter what; in that case, perhaps your warning message should be an error instead.
(Note that this is specifically about what messages get produced by default. When someone is debugging and digging for problems, sure, report all of the non-actionable things that you want. But this is not the default situation.)