I have this Checkstyle block to stop people from printing to console in my project:
<module name="Regexp">
<property name="format" value="((System\.|(out|err)\.print)|printStackTrace)"/>
<property name="ignoreComments" value="true"/>
<property name="illegalPattern" value="true"/>
<property name="message" value="No printing to console, use a logger."/>
</module>
Where the regex is ((System\.|(out|err)\.print)|printStackTrace)
However, someone snuck this in: out.println
by importing import static java.lang.System.out;
.
So I updated the regex to: ((System\.(out|err))|printStackTrace|(out|err)\.(print|write|append))
My question is: does this regex cover all ways to print to console in Java? Does anyone have a better regex that they use in Checkstyle?