Because the message will be evaluated (interpolated), even if the message will not be logged, due to a different warning level set. For instance, the following is always better than using .format.
log.info("test %s%s",a,b)# interpolated only when the message will be emitted
Also, it's not an "enforcement", but a style guide or an improvement. Not every Pylint message can be considered an error or an warning. Well, we should add an Information category though. Such messages can then be moved in that section.
Well I see your point. And since formatting is not supported by the logging module it does make sense.
Our project adopted string formating and it wouldn't make much sense to advise substitution just for logging. It would bring confusion to contributors.
We'll just disable this check.