All Downloads are FREE. Search and download functionalities are using the official Maven repository.

resources.report.rules.pmd.ProperLogger.html Maven / Gradle / Ivy



ProperLogger

ProperLogger

A logger should normally be defined private static final and be associated with the correct class. Private final Log log; is also allowed for rare cases where loggers need to be passed around, with the restriction that the logger needs to be passed into the constructor.

     
//ClassOrInterfaceBodyDeclaration[FieldDeclaration//ClassOrInterfaceType[@Image='Log']
 and
 not(FieldDeclaration[@Final='true'][@Static='true'][@Private='true'][.//VariableDeclaratorId[@Image=$staticLoggerName]]
 //ArgumentList//ClassOrInterfaceType/@Image = ancestor::ClassOrInterfaceDeclaration/@Image)
 and
 not(FieldDeclaration[@Final='true'][@Private='true'][.//VariableDeclaratorId[@Image='log']]
 [count(.//VariableInitializer)=0]
 [ancestor::ClassOrInterfaceBody//StatementExpression[.//PrimaryExpression/descendant::*[@Image='log']][count(.//AllocationExpression)=0]]
 )]
     

Example(s):

 
public class Foo {

   private static final Log LOG = LogFactory.getLog(Foo.class);	   // proper way

   protected Log LOG = LogFactory.getLog(Testclass.class);			// wrong approach
}
 




© 2015 - 2024 Weber Informatics LLC | Privacy Policy