I am using Java util Logger. According to the documentation for Logger.getLogger method, it says, "Find or create a logger for a named subsystem. If a logger has already been created with the given name it is returned. Otherwise a new logger is created.". Would there still be any benefit in calling it only once per class?
Option 1:
public class Myclass
static Logger logger = Logger.getLogger(Myclass.class);
public void method1() {
logger.log(...);
}
public void method2() {
logger.log(....);
}
}
Option 2:
public class Myclass {
public void method1() {
Logger.getLogger(Myclass.class).log(...);
}
public void method2() {
Logger.getLogger(Myclass.class).log(...);
}
}
There are two not-very-important reasons why having a single static (probably final) instance is better than calling getLogger
all the time.
Logger.getLogger
all the time. It's not something to worry about unless you are calling it millions of times in a tight loop, but it's there.That said, personal preference is vastly more important than either of these reasons. Option 1 is a common approach, but if you prefer option 2 then by all means use it. It's not going to hurt your code.