Should Log4J to be declared static?
Yes it should because it is not good to let on Log4J implementation to keep information about all classes. Log4J *can* return singleton instances but it is not a rule!
It is very good idea to keep this static. At least this save one reference in memory or (if Log4J doesnt return singletons) or if the implementation doesnt care about one instance for one class (most do) that can save lot of memory and cpu time. If you do not declare it static *every class instance will have it` own logging instance*.