I almost have a long-term vision for this, so I'll detail it here:
Most everything should raise an Exception by default (which should be more verbose, like you mentioned).
Most exceptions fall into some set categories (which we can detail later), but as a result it should be configurable to ignore certain types with specified behvior (i.e. return None), and trigger an associated logging event at the appropriate level.
Then log levels could be muted/streamed directly.
The one caveat is that logging is intended for all users of a program, while warnings is specifically designed for messages to programmers, so good practice would require keeping audience in mind during this logging.
I'll address this specific one on it's own and open a new issue at that point with a slightly more revised plan of this sort.
Originally posted by @joshua-dean in #22 (comment)
Most everything should raise an
Exceptionby default (which should be more verbose, like you mentioned).Most exceptions fall into some set categories (which we can detail later), but as a result it should be configurable to ignore certain types with specified behvior (i.e. return
None), and trigger an associatedloggingevent at the appropriate level.Then log levels could be muted/streamed directly.
The one caveat is that
loggingis intended for all users of a program, whilewarningsis specifically designed for messages to programmers, so good practice would require keeping audience in mind during this logging.I'll address this specific one on it's own and open a new issue at that point with a slightly more revised plan of this sort.
Originally posted by @joshua-dean in #22 (comment)