I have some webservices in my application and i want to log them to diferent files, based on the webservice name. For that i am creating loggers with
myLogger =
This method Logger.getLogger(logKey) looks in logger cache for a logger with the name passed in logKey. If it doesn't exist it creates one. First call for a logger name, a Logger will be created but later calls will get it from cache so you don't need to handle this in your code.
Loggers are already cached by log4j using the default log repository (Hierarchy
). In other words, it's just a hashtable lookup.
However, in my experience you tend to make the logger static, so it only ends up being called once per class anyway.